home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-1 / Inter.Net 55-1.iso / CBuilder / Setup / BCB / data.z / tapi.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-02-09  |  146.8 KB  |  4,718 lines

  1. /*++ BUILD Version: 0000    // Increment this if a change has global effects
  2.  
  3. The  Telephony  API  is jointly copyrighted by Intel and Microsoft.  You are
  4. granted  a royalty free worldwide, unlimited license to make copies, and use
  5. the   API/SPI  for  making  applications/drivers  that  interface  with  the
  6. specification provided that this paragraph and the Intel/Microsoft copyright
  7. statement is maintained as is in the text and source code files.
  8.  
  9. Copyright 1995-96 Microsoft, all rights reserved.
  10. Portions copyright 1992, 1993 Intel/Microsoft, all rights reserved.
  11.  
  12. Module Name:
  13.  
  14.     tapi.h
  15.  
  16. Notes:
  17.  
  18.     Additions to the Telephony Application Programming Interface (TAPI) since
  19.     version 1.0 are noted by version number (e.g. "TAPI v1.4").
  20.  
  21. --*/
  22.  
  23. #ifndef TAPI_H
  24. #define TAPI_H
  25. #pragma option push -b
  26.  
  27.  
  28.  
  29. //
  30. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  31. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  32. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  33. //
  34. // To build  a TAPI 1.4 application put a define as below in your source
  35. // file before you include TAPI.H:
  36. //
  37. // #define TAPI_CURRENT_VERSION 0x00010004
  38. //
  39. //
  40. #ifndef TAPI_CURRENT_VERSION
  41. #define TAPI_CURRENT_VERSION 0x00020000
  42. #endif
  43.  
  44.  
  45. #include <windows.h>
  46.  
  47.  
  48. #pragma pack(1)
  49. // Type definitions of the data types used in tapi
  50.  
  51. #ifdef __cplusplus
  52. extern "C" {            /* Assume C declarations for C++ */
  53. #endif  /* __cplusplus */
  54.  
  55.  
  56. //
  57. // TAPI type definitions
  58. //
  59.  
  60. #define DECLARE_OPAQUE32(name)  struct name##__ { int unused; }; \
  61.                 typedef const struct name##__ FAR* name
  62.  
  63. DECLARE_OPAQUE32(HCALL);
  64. typedef HCALL FAR * LPHCALL;
  65.  
  66. DECLARE_OPAQUE32(HLINE);
  67. typedef HLINE FAR * LPHLINE;
  68.  
  69. DECLARE_OPAQUE32(HPHONE);
  70. typedef HPHONE FAR * LPHPHONE;
  71.  
  72. DECLARE_OPAQUE32(HLINEAPP);
  73. typedef HLINEAPP FAR * LPHLINEAPP;
  74.  
  75. DECLARE_OPAQUE32(HPHONEAPP);
  76. typedef HPHONEAPP FAR * LPHPHONEAPP;
  77.  
  78. typedef HICON FAR * LPHICON;
  79.  
  80. typedef void (CALLBACK * LINECALLBACK)(
  81.     DWORD               hDevice,
  82.     DWORD               dwMessage,
  83.     DWORD               dwInstance,
  84.     DWORD               dwParam1,
  85.     DWORD               dwParam2,
  86.     DWORD               dwParam3
  87.     );
  88.  
  89. typedef void (CALLBACK * PHONECALLBACK)(
  90.     DWORD               hDevice,
  91.     DWORD               dwMessage,
  92.     DWORD               dwInstance,
  93.     DWORD               dwParam1,
  94.     DWORD               dwParam2,
  95.     DWORD               dwParam3
  96.     );
  97.  
  98.  
  99. // Messages for Phones and Lines
  100.  
  101. #define LINE_ADDRESSSTATE                       0L
  102. #define LINE_CALLINFO                           1L
  103. #define LINE_CALLSTATE                          2L
  104. #define LINE_CLOSE                              3L
  105. #define LINE_DEVSPECIFIC                        4L
  106. #define LINE_DEVSPECIFICFEATURE                 5L
  107. #define LINE_GATHERDIGITS                       6L
  108. #define LINE_GENERATE                           7L
  109. #define LINE_LINEDEVSTATE                       8L
  110. #define LINE_MONITORDIGITS                      9L
  111. #define LINE_MONITORMEDIA                       10L
  112. #define LINE_MONITORTONE                        11L
  113. #define LINE_REPLY                              12L
  114. #define LINE_REQUEST                            13L
  115. #define PHONE_BUTTON                            14L
  116. #define PHONE_CLOSE                             15L
  117. #define PHONE_DEVSPECIFIC                       16L
  118. #define PHONE_REPLY                             17L
  119. #define PHONE_STATE                             18L
  120. #define LINE_CREATE                             19L             // TAPI v1.4
  121. #define PHONE_CREATE                            20L             // TAPI v1.4
  122.  
  123. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  124. #define LINE_AGENTSPECIFIC                      21L             // TAPI v2.0
  125. #define LINE_AGENTSTATUS                        22L             // TAPI v2.0
  126. #define LINE_APPNEWCALL                         23L             // TAPI v2.0
  127. #define LINE_PROXYREQUEST                       24L             // TAPI v2.0
  128. #define LINE_REMOVE                             25L             // TAPI v2.0
  129. #define PHONE_REMOVE                            26L             // TAPI v2.0
  130. #endif
  131.  
  132.  
  133. #define INITIALIZE_NEGOTIATION                  0xFFFFFFFFL
  134.  
  135. #define LINEADDRCAPFLAGS_FWDNUMRINGS            0x00000001
  136. #define LINEADDRCAPFLAGS_PICKUPGROUPID          0x00000002
  137. #define LINEADDRCAPFLAGS_SECURE                 0x00000004
  138. #define LINEADDRCAPFLAGS_BLOCKIDDEFAULT         0x00000008
  139. #define LINEADDRCAPFLAGS_BLOCKIDOVERRIDE        0x00000010
  140. #define LINEADDRCAPFLAGS_DIALED                 0x00000020
  141. #define LINEADDRCAPFLAGS_ORIGOFFHOOK            0x00000040
  142. #define LINEADDRCAPFLAGS_DESTOFFHOOK            0x00000080
  143. #define LINEADDRCAPFLAGS_FWDCONSULT             0x00000100
  144. #define LINEADDRCAPFLAGS_SETUPCONFNULL          0x00000200
  145. #define LINEADDRCAPFLAGS_AUTORECONNECT          0x00000400
  146. #define LINEADDRCAPFLAGS_COMPLETIONID           0x00000800
  147. #define LINEADDRCAPFLAGS_TRANSFERHELD           0x00001000
  148. #define LINEADDRCAPFLAGS_TRANSFERMAKE           0x00002000
  149. #define LINEADDRCAPFLAGS_CONFERENCEHELD         0x00004000
  150. #define LINEADDRCAPFLAGS_CONFERENCEMAKE         0x00008000
  151. #define LINEADDRCAPFLAGS_PARTIALDIAL            0x00010000
  152. #define LINEADDRCAPFLAGS_FWDSTATUSVALID         0x00020000
  153. #define LINEADDRCAPFLAGS_FWDINTEXTADDR          0x00040000
  154. #define LINEADDRCAPFLAGS_FWDBUSYNAADDR          0x00080000
  155. #define LINEADDRCAPFLAGS_ACCEPTTOALERT          0x00100000
  156. #define LINEADDRCAPFLAGS_CONFDROP               0x00200000
  157. #define LINEADDRCAPFLAGS_PICKUPCALLWAIT         0x00400000
  158. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  159. #define LINEADDRCAPFLAGS_PREDICTIVEDIALER       0x00800000      // TAPI v2.0
  160. #define LINEADDRCAPFLAGS_QUEUE                  0x01000000      // TAPI v2.0
  161. #define LINEADDRCAPFLAGS_ROUTEPOINT             0x02000000      // TAPI v2.0
  162. #define LINEADDRCAPFLAGS_HOLDMAKESNEW           0x04000000      // TAPI v2.0
  163. #define LINEADDRCAPFLAGS_NOINTERNALCALLS        0x08000000      // TAPI v2.0
  164. #define LINEADDRCAPFLAGS_NOEXTERNALCALLS        0x10000000      // TAPI v2.0
  165. #define LINEADDRCAPFLAGS_SETCALLINGID           0x20000000      // TAPI v2.0
  166. #endif
  167.  
  168. #define LINEADDRESSMODE_ADDRESSID               0x00000001
  169. #define LINEADDRESSMODE_DIALABLEADDR            0x00000002
  170.  
  171. #define LINEADDRESSSHARING_PRIVATE              0x00000001
  172. #define LINEADDRESSSHARING_BRIDGEDEXCL          0x00000002
  173. #define LINEADDRESSSHARING_BRIDGEDNEW           0x00000004
  174. #define LINEADDRESSSHARING_BRIDGEDSHARED        0x00000008
  175. #define LINEADDRESSSHARING_MONITORED            0x00000010
  176.  
  177. #define LINEADDRESSSTATE_OTHER                  0x00000001
  178. #define LINEADDRESSSTATE_DEVSPECIFIC            0x00000002
  179. #define LINEADDRESSSTATE_INUSEZERO              0x00000004
  180. #define LINEADDRESSSTATE_INUSEONE               0x00000008
  181. #define LINEADDRESSSTATE_INUSEMANY              0x00000010
  182. #define LINEADDRESSSTATE_NUMCALLS               0x00000020
  183. #define LINEADDRESSSTATE_FORWARD                0x00000040
  184. #define LINEADDRESSSTATE_TERMINALS              0x00000080
  185. #define LINEADDRESSSTATE_CAPSCHANGE             0x00000100      // TAPI v1.4
  186.  
  187. #define LINEADDRFEATURE_FORWARD                 0x00000001
  188. #define LINEADDRFEATURE_MAKECALL                0x00000002
  189. #define LINEADDRFEATURE_PICKUP                  0x00000004
  190. #define LINEADDRFEATURE_SETMEDIACONTROL         0x00000008
  191. #define LINEADDRFEATURE_SETTERMINAL             0x00000010
  192. #define LINEADDRFEATURE_SETUPCONF               0x00000020
  193. #define LINEADDRFEATURE_UNCOMPLETECALL          0x00000040
  194. #define LINEADDRFEATURE_UNPARK                  0x00000080
  195. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  196. #define LINEADDRFEATURE_PICKUPHELD              0x00000100      // TAPI v2.0
  197. #define LINEADDRFEATURE_PICKUPGROUP             0x00000200      // TAPI v2.0
  198. #define LINEADDRFEATURE_PICKUPDIRECT            0x00000400      // TAPI v2.0
  199. #define LINEADDRFEATURE_PICKUPWAITING           0x00000800      // TAPI v2.0
  200. #define LINEADDRFEATURE_FORWARDFWD              0x00001000      // TAPI v2.0
  201. #define LINEADDRFEATURE_FORWARDDND              0x00002000      // TAPI v2.0
  202. #endif
  203.  
  204. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  205. #define LINEAGENTFEATURE_SETAGENTGROUP          0x00000001      // TAPI v2.0
  206. #define LINEAGENTFEATURE_SETAGENTSTATE          0x00000002      // TAPI v2.0
  207. #define LINEAGENTFEATURE_SETAGENTACTIVITY       0x00000004      // TAPI v2.0
  208. #define LINEAGENTFEATURE_AGENTSPECIFIC          0x00000008      // TAPI v2.0
  209. #define LINEAGENTFEATURE_GETAGENTACTIVITYLIST   0x00000010      // TAPI v2.0
  210. #define LINEAGENTFEATURE_GETAGENTGROUP          0x00000020      // TAPI v2.0
  211.  
  212. #define LINEAGENTSTATE_LOGGEDOFF                0x00000001      // TAPI v2.0
  213. #define LINEAGENTSTATE_NOTREADY                 0x00000002      // TAPI v2.0
  214. #define LINEAGENTSTATE_READY                    0x00000004      // TAPI v2.0
  215. #define LINEAGENTSTATE_BUSYACD                  0x00000008      // TAPI v2.0
  216. #define LINEAGENTSTATE_BUSYINCOMING             0x00000010      // TAPI v2.0
  217. #define LINEAGENTSTATE_BUSYOUTBOUND             0x00000020      // TAPI v2.0
  218. #define LINEAGENTSTATE_BUSYOTHER                0x00000040      // TAPI v2.0
  219. #define LINEAGENTSTATE_WORKINGAFTERCALL         0x00000080      // TAPI v2.0
  220. #define LINEAGENTSTATE_UNKNOWN                  0x00000100      // TAPI v2.0
  221. #define LINEAGENTSTATE_UNAVAIL                  0x00000200      // TAPI v2.0
  222.  
  223. #define LINEAGENTSTATUS_GROUP                   0x00000001      // TAPI v2.0
  224. #define LINEAGENTSTATUS_STATE                   0x00000002      // TAPI v2.0
  225. #define LINEAGENTSTATUS_NEXTSTATE               0x00000004      // TAPI v2.0
  226. #define LINEAGENTSTATUS_ACTIVITY                0x00000008      // TAPI v2.0
  227. #define LINEAGENTSTATUS_ACTIVITYLIST            0x00000010      // TAPI v2.0
  228. #define LINEAGENTSTATUS_GROUPLIST               0x00000020      // TAPI v2.0
  229. #define LINEAGENTSTATUS_CAPSCHANGE              0x00000040      // TAPI v2.0
  230. #define LINEAGENTSTATUS_VALIDSTATES             0x00000080      // TAPI v2.0
  231. #define LINEAGENTSTATUS_VALIDNEXTSTATES         0x00000100      // TAPI v2.0
  232. #endif
  233.  
  234.  
  235. #define LINEANSWERMODE_NONE                     0x00000001
  236. #define LINEANSWERMODE_DROP                     0x00000002
  237. #define LINEANSWERMODE_HOLD                     0x00000004
  238.  
  239. #define LINEBEARERMODE_VOICE                    0x00000001
  240. #define LINEBEARERMODE_SPEECH                   0x00000002
  241. #define LINEBEARERMODE_MULTIUSE                 0x00000004
  242. #define LINEBEARERMODE_DATA                     0x00000008
  243. #define LINEBEARERMODE_ALTSPEECHDATA            0x00000010
  244. #define LINEBEARERMODE_NONCALLSIGNALING         0x00000020
  245. #define LINEBEARERMODE_PASSTHROUGH              0x00000040      // TAPI v1.4
  246. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  247. #define LINEBEARERMODE_RESTRICTEDDATA           0x00000080      // TAPI v2.0
  248. #endif
  249.  
  250. #define LINEBUSYMODE_STATION                    0x00000001
  251. #define LINEBUSYMODE_TRUNK                      0x00000002
  252. #define LINEBUSYMODE_UNKNOWN                    0x00000004
  253. #define LINEBUSYMODE_UNAVAIL                    0x00000008
  254.  
  255. #define LINECALLCOMPLCOND_BUSY                  0x00000001
  256. #define LINECALLCOMPLCOND_NOANSWER              0x00000002
  257.  
  258. #define LINECALLCOMPLMODE_CAMPON                0x00000001
  259. #define LINECALLCOMPLMODE_CALLBACK              0x00000002
  260. #define LINECALLCOMPLMODE_INTRUDE               0x00000004
  261. #define LINECALLCOMPLMODE_MESSAGE               0x00000008
  262.  
  263. #define LINECALLFEATURE_ACCEPT                  0x00000001
  264. #define LINECALLFEATURE_ADDTOCONF               0x00000002
  265. #define LINECALLFEATURE_ANSWER                  0x00000004
  266. #define LINECALLFEATURE_BLINDTRANSFER           0x00000008
  267. #define LINECALLFEATURE_COMPLETECALL            0x00000010
  268. #define LINECALLFEATURE_COMPLETETRANSF          0x00000020
  269. #define LINECALLFEATURE_DIAL                    0x00000040
  270. #define LINECALLFEATURE_DROP                    0x00000080
  271. #define LINECALLFEATURE_GATHERDIGITS            0x00000100
  272. #define LINECALLFEATURE_GENERATEDIGITS          0x00000200
  273. #define LINECALLFEATURE_GENERATETONE            0x00000400
  274. #define LINECALLFEATURE_HOLD                    0x00000800
  275. #define LINECALLFEATURE_MONITORDIGITS           0x00001000
  276. #define LINECALLFEATURE_MONITORMEDIA            0x00002000
  277. #define LINECALLFEATURE_MONITORTONES            0x00004000
  278. #define LINECALLFEATURE_PARK                    0x00008000
  279. #define LINECALLFEATURE_PREPAREADDCONF          0x00010000
  280. #define LINECALLFEATURE_REDIRECT                0x00020000
  281. #define LINECALLFEATURE_REMOVEFROMCONF          0x00040000
  282. #define LINECALLFEATURE_SECURECALL              0x00080000
  283. #define LINECALLFEATURE_SENDUSERUSER            0x00100000
  284. #define LINECALLFEATURE_SETCALLPARAMS           0x00200000
  285. #define LINECALLFEATURE_SETMEDIACONTROL         0x00400000
  286. #define LINECALLFEATURE_SETTERMINAL             0x00800000
  287. #define LINECALLFEATURE_SETUPCONF               0x01000000
  288. #define LINECALLFEATURE_SETUPTRANSFER           0x02000000
  289. #define LINECALLFEATURE_SWAPHOLD                0x04000000
  290. #define LINECALLFEATURE_UNHOLD                  0x08000000
  291. #define LINECALLFEATURE_RELEASEUSERUSERINFO     0x10000000      // TAPI v1.4
  292. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  293. #define LINECALLFEATURE_SETTREATMENT            0x20000000      // TAPI v2.0
  294. #define LINECALLFEATURE_SETQOS                  0x40000000      // TAPI v2.0
  295. #define LINECALLFEATURE_SETCALLDATA             0x80000000      // TAPI v2.0
  296. #endif
  297.  
  298. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  299. #define LINECALLFEATURE2_NOHOLDCONFERENCE       0x00000001      // TAPI v2.0
  300. #define LINECALLFEATURE2_ONESTEPTRANSFER        0x00000002      // TAPI v2.0
  301. #define LINECALLFEATURE2_COMPLCAMPON            0x00000004      // TAPI v2.0
  302. #define LINECALLFEATURE2_COMPLCALLBACK          0x00000008      // TAPI v2.0
  303. #define LINECALLFEATURE2_COMPLINTRUDE           0x00000010      // TAPI v2.0
  304. #define LINECALLFEATURE2_COMPLMESSAGE           0x00000020      // TAPI v2.0
  305. #define LINECALLFEATURE2_TRANSFERNORM           0x00000040      // TAPI v2.0
  306. #define LINECALLFEATURE2_TRANSFERCONF           0x00000080      // TAPI v2.0
  307. #define LINECALLFEATURE2_PARKDIRECT             0x00000100      // TAPI v2.0
  308. #define LINECALLFEATURE2_PARKNONDIRECT          0x00000200      // TAPI v2.0
  309. #endif
  310.  
  311. #define LINECALLINFOSTATE_OTHER                 0x00000001
  312. #define LINECALLINFOSTATE_DEVSPECIFIC           0x00000002
  313. #define LINECALLINFOSTATE_BEARERMODE            0x00000004
  314. #define LINECALLINFOSTATE_RATE                  0x00000008
  315. #define LINECALLINFOSTATE_MEDIAMODE             0x00000010
  316. #define LINECALLINFOSTATE_APPSPECIFIC           0x00000020
  317. #define LINECALLINFOSTATE_CALLID                0x00000040
  318. #define LINECALLINFOSTATE_RELATEDCALLID         0x00000080
  319. #define LINECALLINFOSTATE_ORIGIN                0x00000100
  320. #define LINECALLINFOSTATE_REASON                0x00000200
  321. #define LINECALLINFOSTATE_COMPLETIONID          0x00000400
  322. #define LINECALLINFOSTATE_NUMOWNERINCR          0x00000800
  323. #define LINECALLINFOSTATE_NUMOWNERDECR          0x00001000
  324. #define LINECALLINFOSTATE_NUMMONITORS           0x00002000
  325. #define LINECALLINFOSTATE_TRUNK                 0x00004000
  326. #define LINECALLINFOSTATE_CALLERID              0x00008000
  327. #define LINECALLINFOSTATE_CALLEDID              0x00010000
  328. #define LINECALLINFOSTATE_CONNECTEDID           0x00020000
  329. #define LINECALLINFOSTATE_REDIRECTIONID         0x00040000
  330. #define LINECALLINFOSTATE_REDIRECTINGID         0x00080000
  331. #define LINECALLINFOSTATE_DISPLAY               0x00100000
  332. #define LINECALLINFOSTATE_USERUSERINFO          0x00200000
  333. #define LINECALLINFOSTATE_HIGHLEVELCOMP         0x00400000
  334. #define LINECALLINFOSTATE_LOWLEVELCOMP          0x00800000
  335. #define LINECALLINFOSTATE_CHARGINGINFO          0x01000000
  336. #define LINECALLINFOSTATE_TERMINAL              0x02000000
  337. #define LINECALLINFOSTATE_DIALPARAMS            0x04000000
  338. #define LINECALLINFOSTATE_MONITORMODES          0x08000000
  339. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  340. #define LINECALLINFOSTATE_TREATMENT             0x10000000      // TAPI v2.0
  341. #define LINECALLINFOSTATE_QOS                   0x20000000      // TAPI v2.0
  342. #define LINECALLINFOSTATE_CALLDATA              0x40000000      // TAPI v2.0
  343. #endif
  344.  
  345. #define LINECALLORIGIN_OUTBOUND                 0x00000001
  346. #define LINECALLORIGIN_INTERNAL                 0x00000002
  347. #define LINECALLORIGIN_EXTERNAL                 0x00000004
  348. #define LINECALLORIGIN_UNKNOWN                  0x00000010
  349. #define LINECALLORIGIN_UNAVAIL                  0x00000020
  350. #define LINECALLORIGIN_CONFERENCE               0x00000040
  351. #define LINECALLORIGIN_INBOUND                  0x00000080      // TAPI v1.4
  352.  
  353. #define LINECALLPARAMFLAGS_SECURE               0x00000001
  354. #define LINECALLPARAMFLAGS_IDLE                 0x00000002
  355. #define LINECALLPARAMFLAGS_BLOCKID              0x00000004
  356. #define LINECALLPARAMFLAGS_ORIGOFFHOOK          0x00000008
  357. #define LINECALLPARAMFLAGS_DESTOFFHOOK          0x00000010
  358. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  359. #define LINECALLPARAMFLAGS_NOHOLDCONFERENCE     0x00000020      // TAPI v2.0
  360. #define LINECALLPARAMFLAGS_PREDICTIVEDIAL       0x00000040      // TAPI v2.0
  361. #define LINECALLPARAMFLAGS_ONESTEPTRANSFER      0x00000080      // TAPI v2.0
  362. #endif
  363.  
  364. #define LINECALLPARTYID_BLOCKED                 0x00000001
  365. #define LINECALLPARTYID_OUTOFAREA               0x00000002
  366. #define LINECALLPARTYID_NAME                    0x00000004
  367. #define LINECALLPARTYID_ADDRESS                 0x00000008
  368. #define LINECALLPARTYID_PARTIAL                 0x00000010
  369. #define LINECALLPARTYID_UNKNOWN                 0x00000020
  370. #define LINECALLPARTYID_UNAVAIL                 0x00000040
  371.  
  372. #define LINECALLPRIVILEGE_NONE                  0x00000001
  373. #define LINECALLPRIVILEGE_MONITOR               0x00000002
  374. #define LINECALLPRIVILEGE_OWNER                 0x00000004
  375.  
  376. #define LINECALLREASON_DIRECT                   0x00000001
  377. #define LINECALLREASON_FWDBUSY                  0x00000002
  378. #define LINECALLREASON_FWDNOANSWER              0x00000004
  379. #define LINECALLREASON_FWDUNCOND                0x00000008
  380. #define LINECALLREASON_PICKUP                   0x00000010
  381. #define LINECALLREASON_UNPARK                   0x00000020
  382. #define LINECALLREASON_REDIRECT                 0x00000040
  383. #define LINECALLREASON_CALLCOMPLETION           0x00000080
  384. #define LINECALLREASON_TRANSFER                 0x00000100
  385. #define LINECALLREASON_REMINDER                 0x00000200
  386. #define LINECALLREASON_UNKNOWN                  0x00000400
  387. #define LINECALLREASON_UNAVAIL                  0x00000800
  388. #define LINECALLREASON_INTRUDE                  0x00001000      // TAPI v1.4
  389. #define LINECALLREASON_PARKED                   0x00002000      // TAPI v1.4
  390. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  391. #define LINECALLREASON_CAMPEDON                 0x00004000      // TAPI v2.0
  392. #define LINECALLREASON_ROUTEREQUEST             0x00008000      // TAPI v2.0
  393. #endif
  394.  
  395. #define LINECALLSELECT_LINE                     0x00000001
  396. #define LINECALLSELECT_ADDRESS                  0x00000002
  397. #define LINECALLSELECT_CALL                     0x00000004
  398.  
  399. #define LINECALLSTATE_IDLE                      0x00000001
  400. #define LINECALLSTATE_OFFERING                  0x00000002
  401. #define LINECALLSTATE_ACCEPTED                  0x00000004
  402. #define LINECALLSTATE_DIALTONE                  0x00000008
  403. #define LINECALLSTATE_DIALING                   0x00000010
  404. #define LINECALLSTATE_RINGBACK                  0x00000020
  405. #define LINECALLSTATE_BUSY                      0x00000040
  406. #define LINECALLSTATE_SPECIALINFO               0x00000080
  407. #define LINECALLSTATE_CONNECTED                 0x00000100
  408. #define LINECALLSTATE_PROCEEDING                0x00000200
  409. #define LINECALLSTATE_ONHOLD                    0x00000400
  410. #define LINECALLSTATE_CONFERENCED               0x00000800
  411. #define LINECALLSTATE_ONHOLDPENDCONF            0x00001000
  412. #define LINECALLSTATE_ONHOLDPENDTRANSFER        0x00002000
  413. #define LINECALLSTATE_DISCONNECTED              0x00004000
  414. #define LINECALLSTATE_UNKNOWN                   0x00008000
  415.  
  416. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  417. #define LINECALLTREATMENT_SILENCE               0x00000001      // TAPI v2.0
  418. #define LINECALLTREATMENT_RINGBACK              0x00000002      // TAPI v2.0
  419. #define LINECALLTREATMENT_BUSY                  0x00000003      // TAPI v2.0
  420. #define LINECALLTREATMENT_MUSIC                 0x00000004      // TAPI v2.0
  421. #endif
  422.  
  423. #define LINECARDOPTION_PREDEFINED               0x00000001      // TAPI v1.4
  424. #define LINECARDOPTION_HIDDEN                   0x00000002      // TAPI v1.4
  425.  
  426. #define LINECONNECTEDMODE_ACTIVE                0x00000001      // TAPI v1.4
  427. #define LINECONNECTEDMODE_INACTIVE              0x00000002      // TAPI v1.4
  428. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  429. #define LINECONNECTEDMODE_ACTIVEHELD            0x00000004      // TAPI v2.0
  430. #define LINECONNECTEDMODE_INACTIVEHELD          0x00000008      // TAPI v2.0
  431. #define LINECONNECTEDMODE_CONFIRMED             0x00000010      // TAPI v2.0
  432. #endif
  433.  
  434. #define LINEDEVCAPFLAGS_CROSSADDRCONF           0x00000001
  435. #define LINEDEVCAPFLAGS_HIGHLEVCOMP             0x00000002
  436. #define LINEDEVCAPFLAGS_LOWLEVCOMP              0x00000004
  437. #define LINEDEVCAPFLAGS_MEDIACONTROL            0x00000008
  438. #define LINEDEVCAPFLAGS_MULTIPLEADDR            0x00000010
  439. #define LINEDEVCAPFLAGS_CLOSEDROP               0x00000020
  440. #define LINEDEVCAPFLAGS_DIALBILLING             0x00000040
  441. #define LINEDEVCAPFLAGS_DIALQUIET               0x00000080
  442. #define LINEDEVCAPFLAGS_DIALDIALTONE            0x00000100
  443.  
  444. #define LINEDEVSTATE_OTHER                      0x00000001
  445. #define LINEDEVSTATE_RINGING                    0x00000002
  446. #define LINEDEVSTATE_CONNECTED                  0x00000004
  447. #define LINEDEVSTATE_DISCONNECTED               0x00000008
  448. #define LINEDEVSTATE_MSGWAITON                  0x00000010
  449. #define LINEDEVSTATE_MSGWAITOFF                 0x00000020
  450. #define LINEDEVSTATE_INSERVICE                  0x00000040
  451. #define LINEDEVSTATE_OUTOFSERVICE               0x00000080
  452. #define LINEDEVSTATE_MAINTENANCE                0x00000100
  453. #define LINEDEVSTATE_OPEN                       0x00000200
  454. #define LINEDEVSTATE_CLOSE                      0x00000400
  455. #define LINEDEVSTATE_NUMCALLS                   0x00000800
  456. #define LINEDEVSTATE_NUMCOMPLETIONS             0x00001000
  457. #define LINEDEVSTATE_TERMINALS                  0x00002000
  458. #define LINEDEVSTATE_ROAMMODE                   0x00004000
  459. #define LINEDEVSTATE_BATTERY                    0x00008000
  460. #define LINEDEVSTATE_SIGNAL                     0x00010000
  461. #define LINEDEVSTATE_DEVSPECIFIC                0x00020000
  462. #define LINEDEVSTATE_REINIT                     0x00040000
  463. #define LINEDEVSTATE_LOCK                       0x00080000
  464. #define LINEDEVSTATE_CAPSCHANGE                 0x00100000      // TAPI v1.4
  465. #define LINEDEVSTATE_CONFIGCHANGE               0x00200000      // TAPI v1.4
  466. #define LINEDEVSTATE_TRANSLATECHANGE            0x00400000      // TAPI v1.4
  467. #define LINEDEVSTATE_COMPLCANCEL                0x00800000      // TAPI v1.4
  468. #define LINEDEVSTATE_REMOVED                    0x01000000      // TAPI v1.4
  469.  
  470. #define LINEDEVSTATUSFLAGS_CONNECTED            0x00000001
  471. #define LINEDEVSTATUSFLAGS_MSGWAIT              0x00000002
  472. #define LINEDEVSTATUSFLAGS_INSERVICE            0x00000004
  473. #define LINEDEVSTATUSFLAGS_LOCKED               0x00000008
  474.  
  475. #define LINEDIALTONEMODE_NORMAL                 0x00000001
  476. #define LINEDIALTONEMODE_SPECIAL                0x00000002
  477. #define LINEDIALTONEMODE_INTERNAL               0x00000004
  478. #define LINEDIALTONEMODE_EXTERNAL               0x00000008
  479. #define LINEDIALTONEMODE_UNKNOWN                0x00000010
  480. #define LINEDIALTONEMODE_UNAVAIL                0x00000020
  481.     
  482. #define LINEDIGITMODE_PULSE                     0x00000001
  483. #define LINEDIGITMODE_DTMF                      0x00000002
  484. #define LINEDIGITMODE_DTMFEND                   0x00000004
  485.     
  486. #define LINEDISCONNECTMODE_NORMAL               0x00000001
  487. #define LINEDISCONNECTMODE_UNKNOWN              0x00000002
  488. #define LINEDISCONNECTMODE_REJECT               0x00000004
  489. #define LINEDISCONNECTMODE_PICKUP               0x00000008
  490. #define LINEDISCONNECTMODE_FORWARDED            0x00000010
  491. #define LINEDISCONNECTMODE_BUSY                 0x00000020
  492. #define LINEDISCONNECTMODE_NOANSWER             0x00000040
  493. #define LINEDISCONNECTMODE_BADADDRESS           0x00000080
  494. #define LINEDISCONNECTMODE_UNREACHABLE          0x00000100
  495. #define LINEDISCONNECTMODE_CONGESTION           0x00000200
  496. #define LINEDISCONNECTMODE_INCOMPATIBLE         0x00000400
  497. #define LINEDISCONNECTMODE_UNAVAIL              0x00000800
  498. #define LINEDISCONNECTMODE_NODIALTONE           0x00001000      // TAPI v1.4
  499. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  500. #define LINEDISCONNECTMODE_NUMBERCHANGED        0x00002000      // TAPI v2.0
  501. #define LINEDISCONNECTMODE_OUTOFORDER           0x00004000      // TAPI v2.0
  502. #define LINEDISCONNECTMODE_TEMPFAILURE          0x00008000      // TAPI v2.0
  503. #define LINEDISCONNECTMODE_QOSUNAVAIL           0x00010000      // TAPI v2.0
  504. #define LINEDISCONNECTMODE_BLOCKED              0x00020000      // TAPI v2.0
  505. #define LINEDISCONNECTMODE_DONOTDISTURB         0x00040000      // TAPI v2.0
  506. #define LINEDISCONNECTMODE_CANCELLED            0x00080000      // TAPI v2.0
  507. #endif
  508.  
  509. #define LINEERR_ALLOCATED                       0x80000001
  510. #define LINEERR_BADDEVICEID                     0x80000002
  511. #define LINEERR_BEARERMODEUNAVAIL               0x80000003
  512. #define LINEERR_CALLUNAVAIL                     0x80000005
  513. #define LINEERR_COMPLETIONOVERRUN               0x80000006
  514. #define LINEERR_CONFERENCEFULL                  0x80000007
  515. #define LINEERR_DIALBILLING                     0x80000008
  516. #define LINEERR_DIALDIALTONE                    0x80000009
  517. #define LINEERR_DIALPROMPT                      0x8000000A
  518. #define LINEERR_DIALQUIET                       0x8000000B
  519. #define LINEERR_INCOMPATIBLEAPIVERSION          0x8000000C
  520. #define LINEERR_INCOMPATIBLEEXTVERSION          0x8000000D
  521. #define LINEERR_INIFILECORRUPT                  0x8000000E
  522. #define LINEERR_INUSE                           0x8000000F
  523. #define LINEERR_INVALADDRESS                    0x80000010
  524. #define LINEERR_INVALADDRESSID                  0x80000011
  525. #define LINEERR_INVALADDRESSMODE                0x80000012
  526. #define LINEERR_INVALADDRESSSTATE               0x80000013
  527. #define LINEERR_INVALAPPHANDLE                  0x80000014
  528. #define LINEERR_INVALAPPNAME                    0x80000015
  529. #define LINEERR_INVALBEARERMODE                 0x80000016
  530. #define LINEERR_INVALCALLCOMPLMODE              0x80000017
  531. #define LINEERR_INVALCALLHANDLE                 0x80000018
  532. #define LINEERR_INVALCALLPARAMS                 0x80000019
  533. #define LINEERR_INVALCALLPRIVILEGE              0x8000001A
  534. #define LINEERR_INVALCALLSELECT                 0x8000001B
  535. #define LINEERR_INVALCALLSTATE                  0x8000001C
  536. #define LINEERR_INVALCALLSTATELIST              0x8000001D
  537. #define LINEERR_INVALCARD                       0x8000001E
  538. #define LINEERR_INVALCOMPLETIONID               0x8000001F
  539. #define LINEERR_INVALCONFCALLHANDLE             0x80000020
  540. #define LINEERR_INVALCONSULTCALLHANDLE          0x80000021
  541. #define LINEERR_INVALCOUNTRYCODE                0x80000022
  542. #define LINEERR_INVALDEVICECLASS                0x80000023
  543. #define LINEERR_INVALDEVICEHANDLE               0x80000024
  544. #define LINEERR_INVALDIALPARAMS                 0x80000025
  545. #define LINEERR_INVALDIGITLIST                  0x80000026
  546. #define LINEERR_INVALDIGITMODE                  0x80000027
  547. #define LINEERR_INVALDIGITS                     0x80000028
  548. #define LINEERR_INVALEXTVERSION                 0x80000029
  549. #define LINEERR_INVALGROUPID                    0x8000002A
  550. #define LINEERR_INVALLINEHANDLE                 0x8000002B
  551. #define LINEERR_INVALLINESTATE                  0x8000002C
  552. #define LINEERR_INVALLOCATION                   0x8000002D
  553. #define LINEERR_INVALMEDIALIST                  0x8000002E
  554. #define LINEERR_INVALMEDIAMODE                  0x8000002F
  555. #define LINEERR_INVALMESSAGEID                  0x80000030
  556. #define LINEERR_INVALPARAM                      0x80000032
  557. #define LINEERR_INVALPARKID                     0x80000033
  558. #define LINEERR_INVALPARKMODE                   0x80000034
  559. #define LINEERR_INVALPOINTER                    0x80000035
  560. #define LINEERR_INVALPRIVSELECT                 0x80000036
  561. #define LINEERR_INVALRATE                       0x80000037
  562. #define LINEERR_INVALREQUESTMODE                0x80000038
  563. #define LINEERR_INVALTERMINALID                 0x80000039
  564. #define LINEERR_INVALTERMINALMODE               0x8000003A
  565. #define LINEERR_INVALTIMEOUT                    0x8000003B
  566. #define LINEERR_INVALTONE                       0x8000003C
  567. #define LINEERR_INVALTONELIST                   0x8000003D
  568. #define LINEERR_INVALTONEMODE                   0x8000003E
  569. #define LINEERR_INVALTRANSFERMODE               0x8000003F
  570. #define LINEERR_LINEMAPPERFAILED                0x80000040
  571. #define LINEERR_NOCONFERENCE                    0x80000041
  572. #define LINEERR_NODEVICE                        0x80000042
  573. #define LINEERR_NODRIVER                        0x80000043
  574. #define LINEERR_NOMEM                           0x80000044
  575. #define LINEERR_NOREQUEST                       0x80000045
  576. #define LINEERR_NOTOWNER                        0x80000046
  577. #define LINEERR_NOTREGISTERED                   0x80000047
  578. #define LINEERR_OPERATIONFAILED                 0x80000048
  579. #define LINEERR_OPERATIONUNAVAIL                0x80000049
  580. #define LINEERR_RATEUNAVAIL                     0x8000004A
  581. #define LINEERR_RESOURCEUNAVAIL                 0x8000004B
  582. #define LINEERR_REQUESTOVERRUN                  0x8000004C
  583. #define LINEERR_STRUCTURETOOSMALL               0x8000004D
  584. #define LINEERR_TARGETNOTFOUND                  0x8000004E
  585. #define LINEERR_TARGETSELF                      0x8000004F
  586. #define LINEERR_UNINITIALIZED                   0x80000050
  587. #define LINEERR_USERUSERINFOTOOBIG              0x80000051
  588. #define LINEERR_REINIT                          0x80000052
  589. #define LINEERR_ADDRESSBLOCKED                  0x80000053
  590. #define LINEERR_BILLINGREJECTED                 0x80000054
  591. #define LINEERR_INVALFEATURE                    0x80000055
  592. #define LINEERR_NOMULTIPLEINSTANCE              0x80000056
  593. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  594. #define LINEERR_INVALAGENTID                    0x80000057      // TAPI v2.0
  595. #define LINEERR_INVALAGENTGROUP                 0x80000058      // TAPI v2.0
  596. #define LINEERR_INVALPASSWORD                   0x80000059      // TAPI v2.0
  597. #define LINEERR_INVALAGENTSTATE                 0x8000005A      // TAPI v2.0
  598. #define LINEERR_INVALAGENTACTIVITY              0x8000005B      // TAPI v2.0
  599. #define LINEERR_DIALVOICEDETECT                 0x8000005C      // TAPI v2.0
  600.  
  601.  
  602. #endif
  603.  
  604. #define LINEFEATURE_DEVSPECIFIC                 0x00000001
  605. #define LINEFEATURE_DEVSPECIFICFEAT             0x00000002
  606. #define LINEFEATURE_FORWARD                     0x00000004
  607. #define LINEFEATURE_MAKECALL                    0x00000008
  608. #define LINEFEATURE_SETMEDIACONTROL             0x00000010
  609. #define LINEFEATURE_SETTERMINAL                 0x00000020
  610. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  611. #define LINEFEATURE_SETDEVSTATUS                0x00000040      // TAPI v2.0
  612. #define LINEFEATURE_FORWARDFWD                  0x00000080      // TAPI v2.0
  613. #define LINEFEATURE_FORWARDDND                  0x00000100      // TAPI v2.0
  614. #endif
  615.  
  616. #define LINEFORWARDMODE_UNCOND                  0x00000001
  617. #define LINEFORWARDMODE_UNCONDINTERNAL          0x00000002
  618. #define LINEFORWARDMODE_UNCONDEXTERNAL          0x00000004
  619. #define LINEFORWARDMODE_UNCONDSPECIFIC          0x00000008
  620. #define LINEFORWARDMODE_BUSY                    0x00000010
  621. #define LINEFORWARDMODE_BUSYINTERNAL            0x00000020
  622. #define LINEFORWARDMODE_BUSYEXTERNAL            0x00000040
  623. #define LINEFORWARDMODE_BUSYSPECIFIC            0x00000080
  624. #define LINEFORWARDMODE_NOANSW                  0x00000100
  625. #define LINEFORWARDMODE_NOANSWINTERNAL          0x00000200
  626. #define LINEFORWARDMODE_NOANSWEXTERNAL          0x00000400
  627. #define LINEFORWARDMODE_NOANSWSPECIFIC          0x00000800
  628. #define LINEFORWARDMODE_BUSYNA                  0x00001000
  629. #define LINEFORWARDMODE_BUSYNAINTERNAL          0x00002000
  630. #define LINEFORWARDMODE_BUSYNAEXTERNAL          0x00004000
  631. #define LINEFORWARDMODE_BUSYNASPECIFIC          0x00008000
  632. #define LINEFORWARDMODE_UNKNOWN                 0x00010000      // TAPI v1.4
  633. #define LINEFORWARDMODE_UNAVAIL                 0x00020000      // TAPI v1.4
  634.  
  635. #define LINEGATHERTERM_BUFFERFULL               0x00000001
  636. #define LINEGATHERTERM_TERMDIGIT                0x00000002
  637. #define LINEGATHERTERM_FIRSTTIMEOUT             0x00000004
  638. #define LINEGATHERTERM_INTERTIMEOUT             0x00000008
  639. #define LINEGATHERTERM_CANCEL                   0x00000010
  640.  
  641. #define LINEGENERATETERM_DONE                   0x00000001
  642. #define LINEGENERATETERM_CANCEL                 0x00000002
  643.  
  644. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  645. //
  646. // These constants are mutually exclusive - there's no way to specify more
  647. // than one at a time (and it doesn't make sense, either) so they're
  648. // ordinal rather than bits.
  649. //
  650. #define LINEINITIALIZEEXOPTION_USEHIDDENWINDOW      0x00000001  // TAPI v2.0
  651. #define LINEINITIALIZEEXOPTION_USEEVENT             0x00000002  // TAPI v2.0
  652. #define LINEINITIALIZEEXOPTION_USECOMPLETIONPORT    0x00000003  // TAPI v2.0
  653. #endif
  654.  
  655. #define LINELOCATIONOPTION_PULSEDIAL            0x00000001      // TAPI v1.4
  656.  
  657. #define LINEMAPPER                              0xFFFFFFFF
  658.  
  659. #define LINEMEDIACONTROL_NONE                   0x00000001
  660. #define LINEMEDIACONTROL_START                  0x00000002
  661. #define LINEMEDIACONTROL_RESET                  0x00000004
  662. #define LINEMEDIACONTROL_PAUSE                  0x00000008
  663. #define LINEMEDIACONTROL_RESUME                 0x00000010
  664. #define LINEMEDIACONTROL_RATEUP                 0x00000020
  665. #define LINEMEDIACONTROL_RATEDOWN               0x00000040
  666. #define LINEMEDIACONTROL_RATENORMAL             0x00000080
  667. #define LINEMEDIACONTROL_VOLUMEUP               0x00000100
  668. #define LINEMEDIACONTROL_VOLUMEDOWN             0x00000200
  669. #define LINEMEDIACONTROL_VOLUMENORMAL           0x00000400
  670.  
  671. #define LINEMEDIAMODE_UNKNOWN                   0x00000002
  672. #define LINEMEDIAMODE_INTERACTIVEVOICE          0x00000004
  673. #define LINEMEDIAMODE_AUTOMATEDVOICE            0x00000008
  674. #define LINEMEDIAMODE_DATAMODEM                 0x00000010
  675. #define LINEMEDIAMODE_G3FAX                     0x00000020
  676. #define LINEMEDIAMODE_TDD                       0x00000040
  677. #define LINEMEDIAMODE_G4FAX                     0x00000080
  678. #define LINEMEDIAMODE_DIGITALDATA               0x00000100
  679. #define LINEMEDIAMODE_TELETEX                   0x00000200
  680. #define LINEMEDIAMODE_VIDEOTEX                  0x00000400
  681. #define LINEMEDIAMODE_TELEX                     0x00000800
  682. #define LINEMEDIAMODE_MIXED                     0x00001000
  683. #define LINEMEDIAMODE_ADSI                      0x00002000
  684. #define LINEMEDIAMODE_VOICEVIEW                 0x00004000      // TAPI v1.4
  685. #define LAST_LINEMEDIAMODE                      0x00004000
  686.  
  687. #define LINEOFFERINGMODE_ACTIVE                 0x00000001      // TAPI v1.4
  688. #define LINEOFFERINGMODE_INACTIVE               0x00000002      // TAPI v1.4
  689.  
  690. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  691. #define LINEOPENOPTION_SINGLEADDRESS            0x80000000      // TAPI v2.0
  692. #define LINEOPENOPTION_PROXY                    0x40000000      // TAPI v2.0
  693. #endif
  694.  
  695. #define LINEPARKMODE_DIRECTED                   0x00000001
  696. #define LINEPARKMODE_NONDIRECTED                0x00000002
  697.  
  698. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  699. #define LINEPROXYREQUEST_SETAGENTGROUP          0x00000001      // TAPI v2.0
  700. #define LINEPROXYREQUEST_SETAGENTSTATE          0x00000002      // TAPI v2.0
  701. #define LINEPROXYREQUEST_SETAGENTACTIVITY       0x00000003      // TAPI v2.0
  702. #define LINEPROXYREQUEST_GETAGENTCAPS           0x00000004      // TAPI v2.0
  703. #define LINEPROXYREQUEST_GETAGENTSTATUS         0x00000005      // TAPI v2.0
  704. #define LINEPROXYREQUEST_AGENTSPECIFIC          0x00000006      // TAPI v2.0
  705. #define LINEPROXYREQUEST_GETAGENTACTIVITYLIST   0x00000007      // TAPI v2.0
  706. #define LINEPROXYREQUEST_GETAGENTGROUPLIST      0x00000008      // TAPI v2.0
  707. #endif
  708.  
  709. #define LINEREMOVEFROMCONF_NONE                 0x00000001
  710. #define LINEREMOVEFROMCONF_LAST                 0x00000002
  711. #define LINEREMOVEFROMCONF_ANY                  0x00000003
  712.  
  713. #define LINEREQUESTMODE_MAKECALL                0x00000001
  714. #define LINEREQUESTMODE_MEDIACALL               0x00000002
  715. #define LINEREQUESTMODE_DROP                    0x00000004
  716. #define LAST_LINEREQUESTMODE                    LINEREQUESTMODE_MEDIACALL
  717.  
  718. #define LINEROAMMODE_UNKNOWN                    0x00000001
  719. #define LINEROAMMODE_UNAVAIL                    0x00000002
  720. #define LINEROAMMODE_HOME                       0x00000004
  721. #define LINEROAMMODE_ROAMA                      0x00000008
  722. #define LINEROAMMODE_ROAMB                      0x00000010
  723.  
  724. #define LINESPECIALINFO_NOCIRCUIT               0x00000001
  725. #define LINESPECIALINFO_CUSTIRREG               0x00000002
  726. #define LINESPECIALINFO_REORDER                 0x00000004
  727. #define LINESPECIALINFO_UNKNOWN                 0x00000008
  728. #define LINESPECIALINFO_UNAVAIL                 0x00000010
  729.  
  730. #define LINETERMDEV_PHONE                       0x00000001
  731. #define LINETERMDEV_HEADSET                     0x00000002
  732. #define LINETERMDEV_SPEAKER                     0x00000004
  733.  
  734. #define LINETERMMODE_BUTTONS                    0x00000001
  735. #define LINETERMMODE_LAMPS                      0x00000002
  736. #define LINETERMMODE_DISPLAY                    0x00000004
  737. #define LINETERMMODE_RINGER                     0x00000008
  738. #define LINETERMMODE_HOOKSWITCH                 0x00000010
  739. #define LINETERMMODE_MEDIATOLINE                0x00000020
  740. #define LINETERMMODE_MEDIAFROMLINE              0x00000040
  741. #define LINETERMMODE_MEDIABIDIRECT              0x00000080
  742.  
  743. #define LINETERMSHARING_PRIVATE                 0x00000001
  744. #define LINETERMSHARING_SHAREDEXCL              0x00000002
  745. #define LINETERMSHARING_SHAREDCONF              0x00000004
  746.  
  747. #define LINETOLLLISTOPTION_ADD                  0x00000001
  748. #define LINETOLLLISTOPTION_REMOVE               0x00000002
  749.  
  750. #define LINETONEMODE_CUSTOM                     0x00000001
  751. #define LINETONEMODE_RINGBACK                   0x00000002
  752. #define LINETONEMODE_BUSY                       0x00000004
  753. #define LINETONEMODE_BEEP                       0x00000008
  754. #define LINETONEMODE_BILLING                    0x00000010
  755.  
  756. #define LINETRANSFERMODE_TRANSFER               0x00000001
  757. #define LINETRANSFERMODE_CONFERENCE             0x00000002
  758.  
  759. #define LINETRANSLATEOPTION_CARDOVERRIDE        0x00000001
  760. #define LINETRANSLATEOPTION_CANCELCALLWAITING   0x00000002      // TAPI v1.4
  761. #define LINETRANSLATEOPTION_FORCELOCAL          0x00000004      // TAPI v1.4
  762. #define LINETRANSLATEOPTION_FORCELD             0x00000008      // TAPI v1.4
  763.  
  764. #define LINETRANSLATERESULT_CANONICAL           0x00000001
  765. #define LINETRANSLATERESULT_INTERNATIONAL       0x00000002
  766. #define LINETRANSLATERESULT_LONGDISTANCE        0x00000004
  767. #define LINETRANSLATERESULT_LOCAL               0x00000008
  768. #define LINETRANSLATERESULT_INTOLLLIST          0x00000010
  769. #define LINETRANSLATERESULT_NOTINTOLLLIST       0x00000020
  770. #define LINETRANSLATERESULT_DIALBILLING         0x00000040
  771. #define LINETRANSLATERESULT_DIALQUIET           0x00000080
  772. #define LINETRANSLATERESULT_DIALDIALTONE        0x00000100
  773. #define LINETRANSLATERESULT_DIALPROMPT          0x00000200
  774. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  775. #define LINETRANSLATERESULT_VOICEDETECT         0x00000400      // TAPI v2.0
  776. #endif
  777.  
  778. #define PHONEBUTTONFUNCTION_UNKNOWN             0x00000000
  779. #define PHONEBUTTONFUNCTION_CONFERENCE          0x00000001
  780. #define PHONEBUTTONFUNCTION_TRANSFER            0x00000002
  781. #define PHONEBUTTONFUNCTION_DROP                0x00000003
  782. #define PHONEBUTTONFUNCTION_HOLD                0x00000004
  783. #define PHONEBUTTONFUNCTION_RECALL              0x00000005
  784. #define PHONEBUTTONFUNCTION_DISCONNECT          0x00000006
  785. #define PHONEBUTTONFUNCTION_CONNECT             0x00000007
  786. #define PHONEBUTTONFUNCTION_MSGWAITON           0x00000008
  787. #define PHONEBUTTONFUNCTION_MSGWAITOFF          0x00000009
  788. #define PHONEBUTTONFUNCTION_SELECTRING          0x0000000A
  789. #define PHONEBUTTONFUNCTION_ABBREVDIAL          0x0000000B
  790. #define PHONEBUTTONFUNCTION_FORWARD             0x0000000C
  791. #define PHONEBUTTONFUNCTION_PICKUP              0x0000000D
  792. #define PHONEBUTTONFUNCTION_RINGAGAIN           0x0000000E
  793. #define PHONEBUTTONFUNCTION_PARK                0x0000000F
  794. #define PHONEBUTTONFUNCTION_REJECT              0x00000010
  795. #define PHONEBUTTONFUNCTION_REDIRECT            0x00000011
  796. #define PHONEBUTTONFUNCTION_MUTE                0x00000012
  797. #define PHONEBUTTONFUNCTION_VOLUMEUP            0x00000013
  798. #define PHONEBUTTONFUNCTION_VOLUMEDOWN          0x00000014
  799. #define PHONEBUTTONFUNCTION_SPEAKERON           0x00000015
  800. #define PHONEBUTTONFUNCTION_SPEAKEROFF          0x00000016
  801. #define PHONEBUTTONFUNCTION_FLASH               0x00000017
  802. #define PHONEBUTTONFUNCTION_DATAON              0x00000018
  803. #define PHONEBUTTONFUNCTION_DATAOFF             0x00000019
  804. #define PHONEBUTTONFUNCTION_DONOTDISTURB        0x0000001A
  805. #define PHONEBUTTONFUNCTION_INTERCOM            0x0000001B
  806. #define PHONEBUTTONFUNCTION_BRIDGEDAPP          0x0000001C
  807. #define PHONEBUTTONFUNCTION_BUSY                0x0000001D
  808. #define PHONEBUTTONFUNCTION_CALLAPP             0x0000001E
  809. #define PHONEBUTTONFUNCTION_DATETIME            0x0000001F
  810. #define PHONEBUTTONFUNCTION_DIRECTORY           0x00000020
  811. #define PHONEBUTTONFUNCTION_COVER               0x00000021
  812. #define PHONEBUTTONFUNCTION_CALLID              0x00000022
  813. #define PHONEBUTTONFUNCTION_LASTNUM             0x00000023
  814. #define PHONEBUTTONFUNCTION_NIGHTSRV            0x00000024
  815. #define PHONEBUTTONFUNCTION_SENDCALLS           0x00000025
  816. #define PHONEBUTTONFUNCTION_MSGINDICATOR        0x00000026
  817. #define PHONEBUTTONFUNCTION_REPDIAL             0x00000027
  818. #define PHONEBUTTONFUNCTION_SETREPDIAL          0x00000028
  819. #define PHONEBUTTONFUNCTION_SYSTEMSPEED         0x00000029
  820. #define PHONEBUTTONFUNCTION_STATIONSPEED        0x0000002A
  821. #define PHONEBUTTONFUNCTION_CAMPON              0x0000002B
  822. #define PHONEBUTTONFUNCTION_SAVEREPEAT          0x0000002C
  823. #define PHONEBUTTONFUNCTION_QUEUECALL           0x0000002D
  824. #define PHONEBUTTONFUNCTION_NONE                0x0000002E
  825.  
  826. #define PHONEBUTTONMODE_DUMMY                   0x00000001
  827. #define PHONEBUTTONMODE_CALL                    0x00000002
  828. #define PHONEBUTTONMODE_FEATURE                 0x00000004
  829. #define PHONEBUTTONMODE_KEYPAD                  0x00000008
  830. #define PHONEBUTTONMODE_LOCAL                   0x00000010
  831. #define PHONEBUTTONMODE_DISPLAY                 0x00000020
  832.  
  833. #define PHONEBUTTONSTATE_UP                     0x00000001
  834. #define PHONEBUTTONSTATE_DOWN                   0x00000002
  835. #define PHONEBUTTONSTATE_UNKNOWN                0x00000004      // TAPI v1.4
  836. #define PHONEBUTTONSTATE_UNAVAIL                0x00000008      // TAPI v1.4
  837.  
  838. #define PHONEERR_ALLOCATED                      0x90000001
  839. #define PHONEERR_BADDEVICEID                    0x90000002
  840. #define PHONEERR_INCOMPATIBLEAPIVERSION         0x90000003
  841. #define PHONEERR_INCOMPATIBLEEXTVERSION         0x90000004
  842. #define PHONEERR_INIFILECORRUPT                 0x90000005
  843. #define PHONEERR_INUSE                          0x90000006
  844. #define PHONEERR_INVALAPPHANDLE                 0x90000007
  845. #define PHONEERR_INVALAPPNAME                   0x90000008
  846. #define PHONEERR_INVALBUTTONLAMPID              0x90000009
  847. #define PHONEERR_INVALBUTTONMODE                0x9000000A
  848. #define PHONEERR_INVALBUTTONSTATE               0x9000000B
  849. #define PHONEERR_INVALDATAID                    0x9000000C
  850. #define PHONEERR_INVALDEVICECLASS               0x9000000D
  851. #define PHONEERR_INVALEXTVERSION                0x9000000E
  852. #define PHONEERR_INVALHOOKSWITCHDEV             0x9000000F
  853. #define PHONEERR_INVALHOOKSWITCHMODE            0x90000010
  854. #define PHONEERR_INVALLAMPMODE                  0x90000011
  855. #define PHONEERR_INVALPARAM                     0x90000012
  856. #define PHONEERR_INVALPHONEHANDLE               0x90000013
  857. #define PHONEERR_INVALPHONESTATE                0x90000014
  858. #define PHONEERR_INVALPOINTER                   0x90000015
  859. #define PHONEERR_INVALPRIVILEGE                 0x90000016
  860. #define PHONEERR_INVALRINGMODE                  0x90000017
  861. #define PHONEERR_NODEVICE                       0x90000018
  862. #define PHONEERR_NODRIVER                       0x90000019
  863. #define PHONEERR_NOMEM                          0x9000001A
  864. #define PHONEERR_NOTOWNER                       0x9000001B
  865. #define PHONEERR_OPERATIONFAILED                0x9000001C
  866. #define PHONEERR_OPERATIONUNAVAIL               0x9000001D
  867. #define PHONEERR_RESOURCEUNAVAIL                0x9000001F
  868. #define PHONEERR_REQUESTOVERRUN                 0x90000020
  869. #define PHONEERR_STRUCTURETOOSMALL              0x90000021
  870. #define PHONEERR_UNINITIALIZED                  0x90000022
  871. #define PHONEERR_REINIT                         0x90000023
  872.  
  873.  
  874. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  875. #define PHONEFEATURE_GETBUTTONINFO              0x00000001      // TAPI v2.0
  876. #define PHONEFEATURE_GETDATA                    0x00000002      // TAPI v2.0
  877. #define PHONEFEATURE_GETDISPLAY                 0x00000004      // TAPI v2.0
  878. #define PHONEFEATURE_GETGAINHANDSET             0x00000008      // TAPI v2.0
  879. #define PHONEFEATURE_GETGAINSPEAKER             0x00000010      // TAPI v2.0
  880. #define PHONEFEATURE_GETGAINHEADSET             0x00000020      // TAPI v2.0
  881. #define PHONEFEATURE_GETHOOKSWITCHHANDSET       0x00000040      // TAPI v2.0
  882. #define PHONEFEATURE_GETHOOKSWITCHSPEAKER       0x00000080      // TAPI v2.0
  883. #define PHONEFEATURE_GETHOOKSWITCHHEADSET       0x00000100      // TAPI v2.0
  884. #define PHONEFEATURE_GETLAMP                    0x00000200      // TAPI v2.0
  885. #define PHONEFEATURE_GETRING                    0x00000400      // TAPI v2.0
  886. #define PHONEFEATURE_GETVOLUMEHANDSET           0x00000800      // TAPI v2.0
  887. #define PHONEFEATURE_GETVOLUMESPEAKER           0x00001000      // TAPI v2.0
  888. #define PHONEFEATURE_GETVOLUMEHEADSET           0x00002000      // TAPI v2.0
  889. #define PHONEFEATURE_SETBUTTONINFO              0x00004000      // TAPI v2.0
  890. #define PHONEFEATURE_SETDATA                    0x00008000      // TAPI v2.0
  891. #define PHONEFEATURE_SETDISPLAY                 0x00010000      // TAPI v2.0
  892. #define PHONEFEATURE_SETGAINHANDSET             0x00020000      // TAPI v2.0
  893. #define PHONEFEATURE_SETGAINSPEAKER             0x00040000      // TAPI v2.0
  894. #define PHONEFEATURE_SETGAINHEADSET             0x00080000      // TAPI v2.0
  895. #define PHONEFEATURE_SETHOOKSWITCHHANDSET       0x00100000      // TAPI v2.0
  896. #define PHONEFEATURE_SETHOOKSWITCHSPEAKER       0x00200000      // TAPI v2.0
  897. #define PHONEFEATURE_SETHOOKSWITCHHEADSET       0x00400000      // TAPI v2.0
  898. #define PHONEFEATURE_SETLAMP                    0x00800000      // TAPI v2.0
  899. #define PHONEFEATURE_SETRING                    0x01000000      // TAPI v2.0
  900. #define PHONEFEATURE_SETVOLUMEHANDSET           0x02000000      // TAPI v2.0
  901. #define PHONEFEATURE_SETVOLUMESPEAKER           0x04000000      // TAPI v2.0
  902. #define PHONEFEATURE_SETVOLUMEHEADSET           0x08000000      // TAPI v2.0
  903. #endif
  904.  
  905. #define PHONEHOOKSWITCHDEV_HANDSET              0x00000001
  906. #define PHONEHOOKSWITCHDEV_SPEAKER              0x00000002
  907. #define PHONEHOOKSWITCHDEV_HEADSET              0x00000004
  908.  
  909. #define PHONEHOOKSWITCHMODE_ONHOOK              0x00000001
  910. #define PHONEHOOKSWITCHMODE_MIC                 0x00000002
  911. #define PHONEHOOKSWITCHMODE_SPEAKER             0x00000004
  912. #define PHONEHOOKSWITCHMODE_MICSPEAKER          0x00000008
  913. #define PHONEHOOKSWITCHMODE_UNKNOWN             0x00000010
  914.  
  915. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  916. #define PHONEINITIALIZEEXOPTION_USEHIDDENWINDOW     0x00000001  // TAPI v2.0
  917. #define PHONEINITIALIZEEXOPTION_USEEVENT            0x00000002  // TAPI v2.0
  918. #define PHONEINITIALIZEEXOPTION_USECOMPLETIONPORT   0x00000003  // TAPI v2.0
  919. #endif
  920.  
  921. #define PHONELAMPMODE_DUMMY                     0x00000001
  922. #define PHONELAMPMODE_OFF                       0x00000002
  923. #define PHONELAMPMODE_STEADY                    0x00000004
  924. #define PHONELAMPMODE_WINK                      0x00000008
  925. #define PHONELAMPMODE_FLASH                     0x00000010
  926. #define PHONELAMPMODE_FLUTTER                   0x00000020
  927. #define PHONELAMPMODE_BROKENFLUTTER             0x00000040
  928. #define PHONELAMPMODE_UNKNOWN                   0x00000080
  929.  
  930. #define PHONEPRIVILEGE_MONITOR                  0x00000001
  931. #define PHONEPRIVILEGE_OWNER                    0x00000002
  932.  
  933. #define PHONESTATE_OTHER                        0x00000001
  934. #define PHONESTATE_CONNECTED                    0x00000002
  935. #define PHONESTATE_DISCONNECTED                 0x00000004
  936. #define PHONESTATE_OWNER                        0x00000008
  937. #define PHONESTATE_MONITORS                     0x00000010
  938. #define PHONESTATE_DISPLAY                      0x00000020
  939. #define PHONESTATE_LAMP                         0x00000040
  940. #define PHONESTATE_RINGMODE                     0x00000080
  941. #define PHONESTATE_RINGVOLUME                   0x00000100
  942. #define PHONESTATE_HANDSETHOOKSWITCH            0x00000200
  943. #define PHONESTATE_HANDSETVOLUME                0x00000400
  944. #define PHONESTATE_HANDSETGAIN                  0x00000800
  945. #define PHONESTATE_SPEAKERHOOKSWITCH            0x00001000
  946. #define PHONESTATE_SPEAKERVOLUME                0x00002000
  947. #define PHONESTATE_SPEAKERGAIN                  0x00004000
  948. #define PHONESTATE_HEADSETHOOKSWITCH            0x00008000
  949. #define PHONESTATE_HEADSETVOLUME                0x00010000
  950. #define PHONESTATE_HEADSETGAIN                  0x00020000
  951. #define PHONESTATE_SUSPEND                      0x00040000
  952. #define PHONESTATE_RESUME                       0x00080000
  953. #define PHONESTATE_DEVSPECIFIC                  0x00100000
  954. #define PHONESTATE_REINIT                       0x00200000
  955. #define PHONESTATE_CAPSCHANGE                   0x00400000      // TAPI v1.4
  956. #define PHONESTATE_REMOVED                      0x00800000      // TAPI v1.4
  957.  
  958. #define PHONESTATUSFLAGS_CONNECTED              0x00000001
  959. #define PHONESTATUSFLAGS_SUSPENDED              0x00000002
  960.  
  961. #define STRINGFORMAT_ASCII                      0x00000001
  962. #define STRINGFORMAT_DBCS                       0x00000002
  963. #define STRINGFORMAT_UNICODE                    0x00000003
  964. #define STRINGFORMAT_BINARY                     0x00000004
  965.  
  966. #define TAPI_REPLY                              WM_USER + 99
  967.  
  968. #define TAPIERR_CONNECTED                       0L
  969. #define TAPIERR_DROPPED                         -1L
  970. #define TAPIERR_NOREQUESTRECIPIENT              -2L
  971. #define TAPIERR_REQUESTQUEUEFULL                -3L
  972. #define TAPIERR_INVALDESTADDRESS                -4L
  973. #define TAPIERR_INVALWINDOWHANDLE               -5L
  974. #define TAPIERR_INVALDEVICECLASS                -6L
  975. #define TAPIERR_INVALDEVICEID                   -7L
  976. #define TAPIERR_DEVICECLASSUNAVAIL              -8L
  977. #define TAPIERR_DEVICEIDUNAVAIL                 -9L
  978. #define TAPIERR_DEVICEINUSE                     -10L
  979. #define TAPIERR_DESTBUSY                        -11L
  980. #define TAPIERR_DESTNOANSWER                    -12L
  981. #define TAPIERR_DESTUNAVAIL                     -13L
  982. #define TAPIERR_UNKNOWNWINHANDLE                -14L
  983. #define TAPIERR_UNKNOWNREQUESTID                -15L
  984. #define TAPIERR_REQUESTFAILED                   -16L
  985. #define TAPIERR_REQUESTCANCELLED                -17L
  986. #define TAPIERR_INVALPOINTER                    -18L
  987.  
  988.  
  989. #define TAPIMAXDESTADDRESSSIZE                  80L
  990. #define TAPIMAXAPPNAMESIZE                      40L
  991. #define TAPIMAXCALLEDPARTYSIZE                  40L
  992. #define TAPIMAXCOMMENTSIZE                      80L
  993. #define TAPIMAXDEVICECLASSSIZE                  40L
  994. #define TAPIMAXDEVICEIDSIZE                     40L
  995.  
  996.  
  997.  
  998. typedef struct lineaddresscaps_tag
  999. {
  1000.     DWORD       dwTotalSize;
  1001.     DWORD       dwNeededSize;
  1002.     DWORD       dwUsedSize;
  1003.     DWORD       dwLineDeviceID;
  1004.     DWORD       dwAddressSize;
  1005.     DWORD       dwAddressOffset;
  1006.     DWORD       dwDevSpecificSize;
  1007.     DWORD       dwDevSpecificOffset;
  1008.     DWORD       dwAddressSharing;
  1009.     DWORD       dwAddressStates;
  1010.     DWORD       dwCallInfoStates;
  1011.     DWORD       dwCallerIDFlags;
  1012.     DWORD       dwCalledIDFlags;
  1013.     DWORD       dwConnectedIDFlags;
  1014.     DWORD       dwRedirectionIDFlags;
  1015.     DWORD       dwRedirectingIDFlags;
  1016.     DWORD       dwCallStates;
  1017.     DWORD       dwDialToneModes;
  1018.     DWORD       dwBusyModes;
  1019.     DWORD       dwSpecialInfo;
  1020.     DWORD       dwDisconnectModes;
  1021.     DWORD       dwMaxNumActiveCalls;
  1022.     DWORD       dwMaxNumOnHoldCalls;
  1023.     DWORD       dwMaxNumOnHoldPendingCalls;
  1024.     DWORD       dwMaxNumConference;
  1025.     DWORD       dwMaxNumTransConf;
  1026.     DWORD       dwAddrCapFlags;
  1027.     DWORD       dwCallFeatures;
  1028.     DWORD       dwRemoveFromConfCaps;
  1029.     DWORD       dwRemoveFromConfState;
  1030.     DWORD       dwTransferModes;
  1031.     DWORD       dwParkModes;
  1032.     DWORD       dwForwardModes;
  1033.     DWORD       dwMaxForwardEntries;
  1034.     DWORD       dwMaxSpecificEntries;
  1035.     DWORD       dwMinFwdNumRings;
  1036.     DWORD       dwMaxFwdNumRings;
  1037.     DWORD       dwMaxCallCompletions;
  1038.     DWORD       dwCallCompletionConds;
  1039.     DWORD       dwCallCompletionModes;
  1040.     DWORD       dwNumCompletionMessages;
  1041.     DWORD       dwCompletionMsgTextEntrySize;
  1042.     DWORD       dwCompletionMsgTextSize;
  1043.     DWORD       dwCompletionMsgTextOffset;
  1044.  
  1045.     DWORD       dwAddressFeatures;                              // TAPI v1.4
  1046.  
  1047. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1048.     DWORD       dwPredictiveAutoTransferStates;                 // TAPI v2.0
  1049.     DWORD       dwNumCallTreatments;                            // TAPI v2.0
  1050.     DWORD       dwCallTreatmentListSize;                        // TAPI v2.0
  1051.     DWORD       dwCallTreatmentListOffset;                      // TAPI v2.0
  1052.     DWORD       dwDeviceClassesSize;                            // TAPI v2.0
  1053.     DWORD       dwDeviceClassesOffset;                          // TAPI v2.0
  1054.     DWORD       dwMaxCallDataSize;                              // TAPI v2.0
  1055.     DWORD       dwCallFeatures2;                                // TAPI v2.0
  1056.     DWORD       dwMaxNoAnswerTimeout;                           // TAPI v2.0
  1057.     DWORD       dwConnectedModes;                               // TAPI v2.0
  1058.     DWORD       dwOfferingModes;                                // TAPI v2.0
  1059.     DWORD       dwAvailableMediaModes;                          // TAPI v2.0
  1060. #endif
  1061.  
  1062. } LINEADDRESSCAPS, FAR *LPLINEADDRESSCAPS;
  1063.  
  1064. typedef struct lineaddressstatus_tag
  1065. {
  1066.     DWORD       dwTotalSize;
  1067.     DWORD       dwNeededSize;
  1068.     DWORD       dwUsedSize;
  1069.     DWORD       dwNumInUse;
  1070.     DWORD       dwNumActiveCalls;
  1071.     DWORD       dwNumOnHoldCalls;
  1072.     DWORD       dwNumOnHoldPendCalls;
  1073.     DWORD       dwAddressFeatures;
  1074.     DWORD       dwNumRingsNoAnswer;
  1075.     DWORD       dwForwardNumEntries;
  1076.     DWORD       dwForwardSize;
  1077.     DWORD       dwForwardOffset;
  1078.     DWORD       dwTerminalModesSize;
  1079.     DWORD       dwTerminalModesOffset;
  1080.     DWORD       dwDevSpecificSize;
  1081.     DWORD       dwDevSpecificOffset;
  1082.  
  1083. } LINEADDRESSSTATUS, FAR *LPLINEADDRESSSTATUS;
  1084.  
  1085. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1086. typedef struct lineagentactivityentry_tag
  1087. {
  1088.     DWORD       dwID;                                           // TAPI v2.0
  1089.     DWORD       dwNameSize;                                     // TAPI v2.0
  1090.     DWORD       dwNameOffset;                                   // TAPI v2.0
  1091.  
  1092. } LINEAGENTACTIVITYENTRY, *LPLINEAGENTACTIVITYENTRY;
  1093.  
  1094. typedef struct lineagentactivitylist_tag
  1095. {
  1096.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1097.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1098.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1099.     DWORD       dwNumEntries;                                   // TAPI v2.0
  1100.     DWORD       dwListSize;                                     // TAPI v2.0
  1101.     DWORD       dwListOffset;                                   // TAPI v2.0
  1102.  
  1103. } LINEAGENTACTIVITYLIST, *LPLINEAGENTACTIVITYLIST;
  1104.  
  1105. typedef struct lineagentcaps_tag
  1106. {
  1107.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1108.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1109.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1110.     DWORD       dwAgentHandlerInfoSize;                         // TAPI v2.0
  1111.     DWORD       dwAgentHandlerInfoOffset;                       // TAPI v2.0
  1112.     DWORD       dwCapsVersion;                                  // TAPI v2.0
  1113.     DWORD       dwFeatures;                                     // TAPI v2.0
  1114.     DWORD       dwStates;                                       // TAPI v2.0
  1115.     DWORD       dwNextStates;                                   // TAPI v2.0
  1116.     DWORD       dwMaxNumGroupEntries;                           // TAPI v2.0
  1117.     DWORD       dwAgentStatusMessages;                          // TAPI v2.0
  1118.     DWORD       dwNumAgentExtensionIDs;                         // TAPI v2.0
  1119.     DWORD       dwAgentExtensionIDListSize;                     // TAPI v2.0
  1120.     DWORD       dwAgentExtensionIDListOffset;                   // TAPI v2.0
  1121.  
  1122. } LINEAGENTCAPS, *LPLINEAGENTCAPS;
  1123.  
  1124. typedef struct lineagentgroupentry_tag
  1125. {
  1126.     struct
  1127.     {
  1128.         DWORD   dwGroupID1;                                     // TAPI v2.0
  1129.         DWORD   dwGroupID2;                                     // TAPI v2.0
  1130.         DWORD   dwGroupID3;                                     // TAPI v2.0
  1131.         DWORD   dwGroupID4;                                     // TAPI v2.0
  1132.  
  1133.     } GroupID;
  1134.  
  1135.     DWORD       dwNameSize;                                     // TAPI v2.0
  1136.     DWORD       dwNameOffset;                                   // TAPI v2.0
  1137.  
  1138. } LINEAGENTGROUPENTRY, *LPLINEAGENTGROUPENTRY;
  1139.  
  1140. typedef struct lineagentgrouplist_tag
  1141. {
  1142.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1143.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1144.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1145.     DWORD       dwNumEntries;                                   // TAPI v2.0
  1146.     DWORD       dwListSize;                                     // TAPI v2.0
  1147.     DWORD       dwListOffset;                                   // TAPI v2.0
  1148.  
  1149. } LINEAGENTGROUPLIST, *LPLINEAGENTGROUPLIST;
  1150.  
  1151. typedef struct lineagentstatus_tag
  1152. {
  1153.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1154.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1155.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1156.     DWORD       dwNumEntries;                                   // TAPI v2.0
  1157.     DWORD       dwGroupListSize;                                // TAPI v2.0
  1158.     DWORD       dwGroupListOffset;                              // TAPI v2.0
  1159.     DWORD       dwState;                                        // TAPI v2.0
  1160.     DWORD       dwNextState;                                    // TAPI v2.0
  1161.     DWORD       dwActivityID;                                   // TAPI v2.0
  1162.     DWORD       dwActivitySize;                                 // TAPI v2.0
  1163.     DWORD       dwActivityOffset;                               // TAPI v2.0
  1164.     DWORD       dwAgentFeatures;                                // TAPI v2.0
  1165.     DWORD       dwValidStates;                                  // TAPI v2.0
  1166.     DWORD       dwValidNextStates;                              // TAPI v2.0
  1167.  
  1168. } LINEAGENTSTATUS, *LPLINEAGENTSTATUS;
  1169.  
  1170. typedef struct lineappinfo_tag
  1171. {
  1172.     DWORD       dwMachineNameSize;                              // TAPI v2.0
  1173.     DWORD       dwMachineNameOffset;                            // TAPI v2.0
  1174.     DWORD       dwUserNameSize;                                 // TAPI v2.0
  1175.     DWORD       dwUserNameOffset;                               // TAPI v2.0
  1176.     DWORD       dwModuleFilenameSize;                           // TAPI v2.0
  1177.     DWORD       dwModuleFilenameOffset;                         // TAPI v2.0
  1178.     DWORD       dwFriendlyNameSize;                             // TAPI v2.0
  1179.     DWORD       dwFriendlyNameOffset;                           // TAPI v2.0
  1180.     DWORD       dwMediaModes;                                   // TAPI v2.0
  1181.     DWORD       dwAddressID;                                    // TAPI v2.0
  1182.  
  1183. } LINEAPPINFO, *LPLINEAPPINFO;
  1184. #endif
  1185.  
  1186.  
  1187. typedef struct linedialparams_tag
  1188. {
  1189.     DWORD       dwDialPause;
  1190.     DWORD       dwDialSpeed;
  1191.     DWORD       dwDigitDuration;
  1192.     DWORD       dwWaitForDialtone;
  1193.  
  1194. } LINEDIALPARAMS, FAR *LPLINEDIALPARAMS;
  1195.  
  1196. typedef struct linecallinfo_tag
  1197. {
  1198.     DWORD       dwTotalSize;
  1199.     DWORD       dwNeededSize;
  1200.     DWORD       dwUsedSize;
  1201.     HLINE       hLine;
  1202.     DWORD       dwLineDeviceID;
  1203.     DWORD       dwAddressID;
  1204.     DWORD       dwBearerMode;
  1205.     DWORD       dwRate;
  1206.     DWORD       dwMediaMode;
  1207.     DWORD       dwAppSpecific;
  1208.     DWORD       dwCallID;
  1209.     DWORD       dwRelatedCallID;
  1210.     DWORD       dwCallParamFlags;
  1211.     DWORD       dwCallStates;
  1212.     DWORD       dwMonitorDigitModes;
  1213.     DWORD       dwMonitorMediaModes;
  1214.     LINEDIALPARAMS  DialParams;
  1215.     DWORD       dwOrigin;
  1216.     DWORD       dwReason;
  1217.     DWORD       dwCompletionID;
  1218.     DWORD       dwNumOwners;
  1219.     DWORD       dwNumMonitors;
  1220.     DWORD       dwCountryCode;
  1221.     DWORD       dwTrunk;
  1222.     DWORD       dwCallerIDFlags;
  1223.     DWORD       dwCallerIDSize;
  1224.     DWORD       dwCallerIDOffset;
  1225.     DWORD       dwCallerIDNameSize;
  1226.     DWORD       dwCallerIDNameOffset;
  1227.     DWORD       dwCalledIDFlags;
  1228.     DWORD       dwCalledIDSize;
  1229.     DWORD       dwCalledIDOffset;
  1230.     DWORD       dwCalledIDNameSize;
  1231.     DWORD       dwCalledIDNameOffset;
  1232.     DWORD       dwConnectedIDFlags;
  1233.     DWORD       dwConnectedIDSize;
  1234.     DWORD       dwConnectedIDOffset;
  1235.     DWORD       dwConnectedIDNameSize;
  1236.     DWORD       dwConnectedIDNameOffset;
  1237.     DWORD       dwRedirectionIDFlags;
  1238.     DWORD       dwRedirectionIDSize;
  1239.     DWORD       dwRedirectionIDOffset;
  1240.     DWORD       dwRedirectionIDNameSize;
  1241.     DWORD       dwRedirectionIDNameOffset;
  1242.     DWORD       dwRedirectingIDFlags;
  1243.     DWORD       dwRedirectingIDSize;
  1244.     DWORD       dwRedirectingIDOffset;
  1245.     DWORD       dwRedirectingIDNameSize;
  1246.     DWORD       dwRedirectingIDNameOffset;
  1247.     DWORD       dwAppNameSize;
  1248.     DWORD       dwAppNameOffset;
  1249.     DWORD       dwDisplayableAddressSize;
  1250.     DWORD       dwDisplayableAddressOffset;
  1251.     DWORD       dwCalledPartySize;
  1252.     DWORD       dwCalledPartyOffset;
  1253.     DWORD       dwCommentSize;
  1254.     DWORD       dwCommentOffset;
  1255.     DWORD       dwDisplaySize;
  1256.     DWORD       dwDisplayOffset;
  1257.     DWORD       dwUserUserInfoSize;
  1258.     DWORD       dwUserUserInfoOffset;
  1259.     DWORD       dwHighLevelCompSize;
  1260.     DWORD       dwHighLevelCompOffset;
  1261.     DWORD       dwLowLevelCompSize;
  1262.     DWORD       dwLowLevelCompOffset;
  1263.     DWORD       dwChargingInfoSize;
  1264.     DWORD       dwChargingInfoOffset;
  1265.     DWORD       dwTerminalModesSize;
  1266.     DWORD       dwTerminalModesOffset;
  1267.     DWORD       dwDevSpecificSize;
  1268.     DWORD       dwDevSpecificOffset;
  1269.  
  1270. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1271.     DWORD       dwCallTreatment;                                // TAPI v2.0
  1272.     DWORD       dwCallDataSize;                                 // TAPI v2.0
  1273.     DWORD       dwCallDataOffset;                               // TAPI v2.0
  1274.     DWORD       dwSendingFlowspecSize;                          // TAPI v2.0
  1275.     DWORD       dwSendingFlowspecOffset;                        // TAPI v2.0
  1276.     DWORD       dwReceivingFlowspecSize;                        // TAPI v2.0
  1277.     DWORD       dwReceivingFlowspecOffset;                      // TAPI v2.0
  1278. #endif
  1279.  
  1280. } LINECALLINFO, FAR *LPLINECALLINFO;
  1281.  
  1282. typedef struct linecalllist_tag
  1283. {
  1284.     DWORD       dwTotalSize;
  1285.     DWORD       dwNeededSize;
  1286.     DWORD       dwUsedSize;
  1287.     DWORD       dwCallsNumEntries;
  1288.     DWORD       dwCallsSize;
  1289.     DWORD       dwCallsOffset;
  1290.  
  1291. } LINECALLLIST, FAR *LPLINECALLLIST;
  1292.  
  1293. typedef struct linecallparams_tag               // Defaults:
  1294. {
  1295.     DWORD       dwTotalSize;                    // ---------
  1296.     DWORD       dwBearerMode;                   // voice
  1297.     DWORD       dwMinRate;                      // (3.1kHz)
  1298.     DWORD       dwMaxRate;                      // (3.1kHz)
  1299.     DWORD       dwMediaMode;                    // interactiveVoice
  1300.     DWORD       dwCallParamFlags;               // 0
  1301.     DWORD       dwAddressMode;                  // addressID
  1302.     DWORD       dwAddressID;                    // (any available)
  1303.     LINEDIALPARAMS  DialParams;                 // (0, 0, 0, 0)
  1304.     DWORD       dwOrigAddressSize;              // 0
  1305.     DWORD       dwOrigAddressOffset;
  1306.     DWORD       dwDisplayableAddressSize;
  1307.     DWORD       dwDisplayableAddressOffset;
  1308.     DWORD       dwCalledPartySize;              // 0
  1309.     DWORD       dwCalledPartyOffset;
  1310.     DWORD       dwCommentSize;                  // 0
  1311.     DWORD       dwCommentOffset;
  1312.     DWORD       dwUserUserInfoSize;             // 0
  1313.     DWORD       dwUserUserInfoOffset;
  1314.     DWORD       dwHighLevelCompSize;            // 0
  1315.     DWORD       dwHighLevelCompOffset;
  1316.     DWORD       dwLowLevelCompSize;             // 0
  1317.     DWORD       dwLowLevelCompOffset;
  1318.     DWORD       dwDevSpecificSize;              // 0
  1319.     DWORD       dwDevSpecificOffset;
  1320.  
  1321. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1322.     DWORD       dwPredictiveAutoTransferStates;                 // TAPI v2.0
  1323.     DWORD       dwTargetAddressSize;                            // TAPI v2.0
  1324.     DWORD       dwTargetAddressOffset;                          // TAPI v2.0
  1325.     DWORD       dwSendingFlowspecSize;                          // TAPI v2.0
  1326.     DWORD       dwSendingFlowspecOffset;                        // TAPI v2.0
  1327.     DWORD       dwReceivingFlowspecSize;                        // TAPI v2.0
  1328.     DWORD       dwReceivingFlowspecOffset;                      // TAPI v2.0
  1329.     DWORD       dwDeviceClassSize;                              // TAPI v2.0
  1330.     DWORD       dwDeviceClassOffset;                            // TAPI v2.0
  1331.     DWORD       dwDeviceConfigSize;                             // TAPI v2.0
  1332.     DWORD       dwDeviceConfigOffset;                           // TAPI v2.0
  1333.     DWORD       dwCallDataSize;                                 // TAPI v2.0
  1334.     DWORD       dwCallDataOffset;                               // TAPI v2.0
  1335.     DWORD       dwNoAnswerTimeout;                              // TAPI v2.0
  1336.     DWORD       dwCallingPartyIDSize;                           // TAPI v2.0
  1337.     DWORD       dwCallingPartyIDOffset;                         // TAPI v2.0
  1338. #endif
  1339.  
  1340. } LINECALLPARAMS, FAR *LPLINECALLPARAMS;
  1341.  
  1342. typedef struct linecallstatus_tag
  1343. {
  1344.     DWORD       dwTotalSize;
  1345.     DWORD       dwNeededSize;
  1346.     DWORD       dwUsedSize;
  1347.     DWORD       dwCallState;
  1348.     DWORD       dwCallStateMode;
  1349.     DWORD       dwCallPrivilege;
  1350.     DWORD       dwCallFeatures;
  1351.     DWORD       dwDevSpecificSize;
  1352.     DWORD       dwDevSpecificOffset;
  1353.  
  1354. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1355.     DWORD       dwCallFeatures2;                                // TAPI v2.0
  1356. #if WIN32
  1357.     SYSTEMTIME  tStateEntryTime;                                // TAPI v2.0
  1358. #else
  1359.     WORD        tStateEntryTime[8];                             // TAPI v2.0
  1360. #endif
  1361. #endif
  1362.  
  1363. } LINECALLSTATUS, FAR *LPLINECALLSTATUS;
  1364.  
  1365.  
  1366. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1367. typedef struct linecalltreatmententry_tag
  1368. {
  1369.     DWORD       dwCallTreatmentID;                              // TAPI v2.0
  1370.     DWORD       dwCallTreatmentNameSize;                        // TAPI v2.0
  1371.     DWORD       dwCallTreatmentNameOffset;                      // TAPI v2.0
  1372.  
  1373. } LINECALLTREATMENTENTRY, FAR *LPLINECALLTREATMENTENTRY;
  1374. #endif
  1375.  
  1376.  
  1377. typedef struct linecardentry_tag
  1378. {
  1379.     DWORD       dwPermanentCardID;
  1380.     DWORD       dwCardNameSize;
  1381.     DWORD       dwCardNameOffset;
  1382.     DWORD       dwCardNumberDigits;                             // TAPI v1.4
  1383.     DWORD       dwSameAreaRuleSize;                             // TAPI v1.4
  1384.     DWORD       dwSameAreaRuleOffset;                           // TAPI v1.4
  1385.     DWORD       dwLongDistanceRuleSize;                         // TAPI v1.4
  1386.     DWORD       dwLongDistanceRuleOffset;                       // TAPI v1.4
  1387.     DWORD       dwInternationalRuleSize;                        // TAPI v1.4
  1388.     DWORD       dwInternationalRuleOffset;                      // TAPI v1.4
  1389.     DWORD       dwOptions;                                      // TAPI v1.4
  1390.  
  1391. } LINECARDENTRY, FAR *LPLINECARDENTRY;
  1392.  
  1393. typedef struct linecountryentry_tag
  1394. {
  1395.     DWORD       dwCountryID;                                    // TAPI v1.4
  1396.     DWORD       dwCountryCode;                                  // TAPI v1.4
  1397.     DWORD       dwNextCountryID;                                // TAPI v1.4
  1398.     DWORD       dwCountryNameSize;                              // TAPI v1.4
  1399.     DWORD       dwCountryNameOffset;                            // TAPI v1.4
  1400.     DWORD       dwSameAreaRuleSize;                             // TAPI v1.4
  1401.     DWORD       dwSameAreaRuleOffset;                           // TAPI v1.4
  1402.     DWORD       dwLongDistanceRuleSize;                         // TAPI v1.4
  1403.     DWORD       dwLongDistanceRuleOffset;                       // TAPI v1.4
  1404.     DWORD       dwInternationalRuleSize;                        // TAPI v1.4
  1405.     DWORD       dwInternationalRuleOffset;                      // TAPI v1.4
  1406.  
  1407. } LINECOUNTRYENTRY, FAR *LPLINECOUNTRYENTRY;
  1408.  
  1409. typedef struct linecountrylist_tag
  1410. {
  1411.     DWORD       dwTotalSize;                                    // TAPI v1.4
  1412.     DWORD       dwNeededSize;                                   // TAPI v1.4
  1413.     DWORD       dwUsedSize;                                     // TAPI v1.4
  1414.     DWORD       dwNumCountries;                                 // TAPI v1.4
  1415.     DWORD       dwCountryListSize;                              // TAPI v1.4
  1416.     DWORD       dwCountryListOffset;                            // TAPI v1.4
  1417.  
  1418. } LINECOUNTRYLIST, FAR *LPLINECOUNTRYLIST;
  1419.  
  1420. typedef struct linedevcaps_tag
  1421. {
  1422.     DWORD       dwTotalSize;
  1423.     DWORD       dwNeededSize;
  1424.     DWORD       dwUsedSize;
  1425.     DWORD       dwProviderInfoSize;
  1426.     DWORD       dwProviderInfoOffset;
  1427.     DWORD       dwSwitchInfoSize;
  1428.     DWORD       dwSwitchInfoOffset;
  1429.     DWORD       dwPermanentLineID;
  1430.     DWORD       dwLineNameSize;
  1431.     DWORD       dwLineNameOffset;
  1432.     DWORD       dwStringFormat;
  1433.     DWORD       dwAddressModes;
  1434.     DWORD       dwNumAddresses;
  1435.     DWORD       dwBearerModes;
  1436.     DWORD       dwMaxRate;
  1437.     DWORD       dwMediaModes;
  1438.     DWORD       dwGenerateToneModes;
  1439.     DWORD       dwGenerateToneMaxNumFreq;
  1440.     DWORD       dwGenerateDigitModes;
  1441.     DWORD       dwMonitorToneMaxNumFreq;
  1442.     DWORD       dwMonitorToneMaxNumEntries;
  1443.     DWORD       dwMonitorDigitModes;
  1444.     DWORD       dwGatherDigitsMinTimeout;
  1445.     DWORD       dwGatherDigitsMaxTimeout;
  1446.     DWORD       dwMedCtlDigitMaxListSize;
  1447.     DWORD       dwMedCtlMediaMaxListSize;
  1448.     DWORD       dwMedCtlToneMaxListSize;
  1449.     DWORD       dwMedCtlCallStateMaxListSize;
  1450.     DWORD       dwDevCapFlags;
  1451.     DWORD       dwMaxNumActiveCalls;
  1452.     DWORD       dwAnswerMode;
  1453.     DWORD       dwRingModes;
  1454.     DWORD       dwLineStates;
  1455.     DWORD       dwUUIAcceptSize;
  1456.     DWORD       dwUUIAnswerSize;
  1457.     DWORD       dwUUIMakeCallSize;
  1458.     DWORD       dwUUIDropSize;
  1459.     DWORD       dwUUISendUserUserInfoSize;
  1460.     DWORD       dwUUICallInfoSize;
  1461.     LINEDIALPARAMS  MinDialParams;
  1462.     LINEDIALPARAMS  MaxDialParams;
  1463.     LINEDIALPARAMS  DefaultDialParams;
  1464.     DWORD       dwNumTerminals;
  1465.     DWORD       dwTerminalCapsSize;
  1466.     DWORD       dwTerminalCapsOffset;
  1467.     DWORD       dwTerminalTextEntrySize;
  1468.     DWORD       dwTerminalTextSize;
  1469.     DWORD       dwTerminalTextOffset;
  1470.     DWORD       dwDevSpecificSize;
  1471.     DWORD       dwDevSpecificOffset;
  1472.  
  1473.     DWORD       dwLineFeatures;                                 // TAPI v1.4
  1474.  
  1475. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1476.     DWORD       dwSettableDevStatus;                            // TAPI v2.0
  1477.     DWORD       dwDeviceClassesSize;                            // TAPI v2.0
  1478.     DWORD       dwDeviceClassesOffset;                          // TAPI v2.0
  1479. #endif
  1480.  
  1481. } LINEDEVCAPS, FAR *LPLINEDEVCAPS;
  1482.     
  1483. typedef struct linedevstatus_tag
  1484. {
  1485.     DWORD       dwTotalSize;
  1486.     DWORD       dwNeededSize;
  1487.     DWORD       dwUsedSize;
  1488.     DWORD       dwNumOpens;
  1489.     DWORD       dwOpenMediaModes;
  1490.     DWORD       dwNumActiveCalls;
  1491.     DWORD       dwNumOnHoldCalls;
  1492.     DWORD       dwNumOnHoldPendCalls;
  1493.     DWORD       dwLineFeatures;
  1494.     DWORD       dwNumCallCompletions;
  1495.     DWORD       dwRingMode;
  1496.     DWORD       dwSignalLevel;
  1497.     DWORD       dwBatteryLevel;
  1498.     DWORD       dwRoamMode;
  1499.     DWORD       dwDevStatusFlags;
  1500.     DWORD       dwTerminalModesSize;
  1501.     DWORD       dwTerminalModesOffset;
  1502.     DWORD       dwDevSpecificSize;
  1503.     DWORD       dwDevSpecificOffset;
  1504.  
  1505. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1506.     DWORD       dwAvailableMediaModes;                          // TAPI v2.0
  1507.     DWORD       dwAppInfoSize;                                  // TAPI v2.0
  1508.     DWORD       dwAppInfoOffset;                                // TAPI v2.0
  1509. #endif
  1510.  
  1511. } LINEDEVSTATUS, FAR *LPLINEDEVSTATUS;
  1512.  
  1513. typedef struct lineextensionid_tag
  1514. {
  1515.     DWORD       dwExtensionID0;
  1516.     DWORD       dwExtensionID1;
  1517.     DWORD       dwExtensionID2;
  1518.     DWORD       dwExtensionID3;
  1519.  
  1520. } LINEEXTENSIONID, FAR *LPLINEEXTENSIONID;
  1521.  
  1522. typedef struct lineforward_tag
  1523. {
  1524.     DWORD       dwForwardMode;
  1525.     DWORD       dwCallerAddressSize;
  1526.     DWORD       dwCallerAddressOffset;
  1527.     DWORD       dwDestCountryCode;
  1528.     DWORD       dwDestAddressSize;
  1529.     DWORD       dwDestAddressOffset;
  1530.  
  1531. } LINEFORWARD, FAR *LPLINEFORWARD;
  1532.  
  1533. typedef struct lineforwardlist_tag
  1534. {
  1535.     DWORD       dwTotalSize;
  1536.     DWORD       dwNumEntries;
  1537.     LINEFORWARD ForwardList[1];
  1538.  
  1539. } LINEFORWARDLIST, FAR *LPLINEFORWARDLIST;
  1540.  
  1541. typedef struct linegeneratetone_tag
  1542. {
  1543.     DWORD       dwFrequency;
  1544.     DWORD       dwCadenceOn;
  1545.     DWORD       dwCadenceOff;
  1546.     DWORD       dwVolume;
  1547.  
  1548. } LINEGENERATETONE, FAR *LPLINEGENERATETONE;
  1549.  
  1550. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1551. typedef struct lineinitializeexparams_tag
  1552. {
  1553.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1554.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1555.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1556.     DWORD       dwOptions;                                      // TAPI v2.0
  1557.  
  1558.     union
  1559.     {
  1560.         HANDLE  hEvent;                                         // TAPI v2.0
  1561.         HANDLE  hCompletionPort;                                // TAPI v2.0
  1562.  
  1563.     } Handles;
  1564.  
  1565.     DWORD       dwCompletionKey;                                // TAPI v2.0
  1566.  
  1567. } LINEINITIALIZEEXPARAMS, FAR *LPLINEINITIALIZEEXPARAMS;
  1568. #endif
  1569.  
  1570. typedef struct linelocationentry_tag
  1571. {
  1572.     DWORD       dwPermanentLocationID;
  1573.     DWORD       dwLocationNameSize;
  1574.     DWORD       dwLocationNameOffset;
  1575.     DWORD       dwCountryCode;
  1576.     DWORD       dwCityCodeSize;
  1577.     DWORD       dwCityCodeOffset;
  1578.     DWORD       dwPreferredCardID;
  1579.  
  1580.     DWORD       dwLocalAccessCodeSize;                          // TAPI v1.4
  1581.     DWORD       dwLocalAccessCodeOffset;                        // TAPI v1.4
  1582.     DWORD       dwLongDistanceAccessCodeSize;                   // TAPI v1.4
  1583.     DWORD       dwLongDistanceAccessCodeOffset;                 // TAPI v1.4
  1584.     DWORD       dwTollPrefixListSize;                           // TAPI v1.4
  1585.     DWORD       dwTollPrefixListOffset;                         // TAPI v1.4
  1586.     DWORD       dwCountryID;                                    // TAPI v1.4
  1587.     DWORD       dwOptions;                                      // TAPI v1.4
  1588.     DWORD       dwCancelCallWaitingSize;                        // TAPI v1.4
  1589.     DWORD       dwCancelCallWaitingOffset;                      // TAPI v1.4
  1590.  
  1591. } LINELOCATIONENTRY, FAR *LPLINELOCATIONENTRY;
  1592.  
  1593. typedef struct linemediacontrolcallstate_tag
  1594. {
  1595.     DWORD       dwCallStates;
  1596.     DWORD       dwMediaControl;
  1597.  
  1598. } LINEMEDIACONTROLCALLSTATE, FAR *LPLINEMEDIACONTROLCALLSTATE;
  1599.  
  1600. typedef struct linemediacontroldigit_tag
  1601. {
  1602.     DWORD       dwDigit;
  1603.     DWORD       dwDigitModes;
  1604.     DWORD       dwMediaControl;
  1605.  
  1606. } LINEMEDIACONTROLDIGIT, FAR *LPLINEMEDIACONTROLDIGIT;
  1607.  
  1608. typedef struct linemediacontrolmedia_tag
  1609. {
  1610.     DWORD       dwMediaModes;
  1611.     DWORD       dwDuration;
  1612.     DWORD       dwMediaControl;
  1613.  
  1614. } LINEMEDIACONTROLMEDIA, FAR *LPLINEMEDIACONTROLMEDIA;
  1615.  
  1616. typedef struct linemediacontroltone_tag
  1617. {
  1618.     DWORD       dwAppSpecific;
  1619.     DWORD       dwDuration;
  1620.     DWORD       dwFrequency1;
  1621.     DWORD       dwFrequency2;
  1622.     DWORD       dwFrequency3;
  1623.     DWORD       dwMediaControl;
  1624.  
  1625. } LINEMEDIACONTROLTONE, FAR *LPLINEMEDIACONTROLTONE;
  1626.  
  1627. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1628. typedef struct linemessage_tag
  1629. {
  1630.     DWORD       hDevice;                                        // TAPI v2.0
  1631.     DWORD       dwMessageID;                                    // TAPI v2.0
  1632.     DWORD       dwCallbackInstance;                             // TAPI v2.0
  1633.     DWORD       dwParam1;                                       // TAPI v2.0
  1634.     DWORD       dwParam2;                                       // TAPI v2.0
  1635.     DWORD       dwParam3;                                       // TAPI v2.0
  1636.  
  1637. } LINEMESSAGE, FAR *LPLINEMESSAGE;
  1638. #endif
  1639.  
  1640. typedef struct linemonitortone_tag
  1641. {
  1642.     DWORD       dwAppSpecific;
  1643.     DWORD       dwDuration;
  1644.     DWORD       dwFrequency1;
  1645.     DWORD       dwFrequency2;
  1646.     DWORD       dwFrequency3;
  1647.  
  1648. } LINEMONITORTONE, FAR *LPLINEMONITORTONE;
  1649.  
  1650. typedef struct lineproviderentry_tag
  1651. {
  1652.     DWORD       dwPermanentProviderID;                          // TAPI v1.4
  1653.     DWORD       dwProviderFilenameSize;                         // TAPI v1.4
  1654.     DWORD       dwProviderFilenameOffset;                       // TAPI v1.4
  1655.  
  1656. } LINEPROVIDERENTRY, FAR *LPLINEPROVIDERENTRY;
  1657.  
  1658. typedef struct lineproviderlist_tag
  1659. {
  1660.     DWORD       dwTotalSize;                                    // TAPI v1.4
  1661.     DWORD       dwNeededSize;                                   // TAPI v1.4
  1662.     DWORD       dwUsedSize;                                     // TAPI v1.4
  1663.     DWORD       dwNumProviders;                                 // TAPI v1.4
  1664.     DWORD       dwProviderListSize;                             // TAPI v1.4
  1665.     DWORD       dwProviderListOffset;                           // TAPI v1.4
  1666.  
  1667. } LINEPROVIDERLIST, FAR *LPLINEPROVIDERLIST;
  1668.  
  1669.  
  1670. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1671. typedef struct lineproxyrequest_tag
  1672. {
  1673.     DWORD       dwSize;                                         // TAPI v2.0
  1674.     DWORD       dwClientMachineNameSize;                        // TAPI v2.0
  1675.     DWORD       dwClientMachineNameOffset;                      // TAPI v2.0
  1676.     DWORD       dwClientUserNameSize;                           // TAPI v2.0
  1677.     DWORD       dwClientUserNameOffset;                         // TAPI v2.0
  1678.     DWORD       dwClientAppAPIVersion;                          // TAPI v2.0
  1679.     DWORD       dwRequestType;                                  // TAPI v2.0
  1680.  
  1681.     union
  1682.     {
  1683.     struct
  1684.     {
  1685.         DWORD                   dwAddressID;                    // TAPI v2.0
  1686.         LINEAGENTGROUPLIST      GroupList;                      // TAPI v2.0
  1687.  
  1688.     } SetAgentGroup;
  1689.  
  1690.     struct
  1691.     {
  1692.         DWORD                   dwAddressID;                    // TAPI v2.0
  1693.         DWORD                   dwAgentState;                   // TAPI v2.0
  1694.         DWORD                   dwNextAgentState;               // TAPI v2.0
  1695.  
  1696.     } SetAgentState;
  1697.  
  1698.     struct
  1699.     {
  1700.         DWORD                   dwAddressID;                    // TAPI v2.0
  1701.         DWORD                   dwActivityID;                   // TAPI v2.0
  1702.  
  1703.     } SetAgentActivity;
  1704.  
  1705.     struct
  1706.     {
  1707.         DWORD                   dwAddressID;                    // TAPI v2.0
  1708.         LINEAGENTCAPS           AgentCaps;                      // TAPI v2.0
  1709.  
  1710.     } GetAgentCaps;
  1711.  
  1712.     struct
  1713.     {
  1714.         DWORD                   dwAddressID;                    // TAPI v2.0
  1715.         LINEAGENTSTATUS         AgentStatus;                    // TAPI v2.0
  1716.  
  1717.     } GetAgentStatus;
  1718.  
  1719.     struct
  1720.     {
  1721.         DWORD                   dwAddressID;                    // TAPI v2.0
  1722.         DWORD                   dwAgentExtensionIDIndex;        // TAPI v2.0
  1723.         DWORD                   dwSize;                         // TAPI v2.0
  1724.         BYTE                    Params[1];                      // TAPI v2.0
  1725.  
  1726.     } AgentSpecific;
  1727.  
  1728.     struct
  1729.     {
  1730.         DWORD                   dwAddressID;                    // TAPI v2.0
  1731.         LINEAGENTACTIVITYLIST   ActivityList;                   // TAPI v2.0
  1732.  
  1733.     } GetAgentActivityList;
  1734.  
  1735.     struct
  1736.     {
  1737.         DWORD                   dwAddressID;                    // TAPI v2.0
  1738.         LINEAGENTGROUPLIST      GroupList;                      // TAPI v2.0
  1739.  
  1740.     } GetAgentGroupList;
  1741.     }; //ProxyRequestType;
  1742.  
  1743. } LINEPROXYREQUEST, *LPLINEPROXYREQUEST;
  1744. #endif
  1745.  
  1746.  
  1747. typedef struct linereqmakecall_tag
  1748. {
  1749.     char        szDestAddress[TAPIMAXDESTADDRESSSIZE];
  1750.     char        szAppName[TAPIMAXAPPNAMESIZE];
  1751.     char        szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  1752.     char        szComment[TAPIMAXCOMMENTSIZE];
  1753.  
  1754. } LINEREQMAKECALL, FAR *LPLINEREQMAKECALL;
  1755.  
  1756. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1757. typedef struct linereqmakecallW_tag
  1758. {
  1759.     WCHAR       szDestAddress[TAPIMAXDESTADDRESSSIZE];
  1760.     WCHAR       szAppName[TAPIMAXAPPNAMESIZE];
  1761.     WCHAR       szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  1762.     WCHAR       szComment[TAPIMAXCOMMENTSIZE];
  1763.  
  1764. } LINEREQMAKECALLW, FAR *LPLINEREQMAKECALLW;
  1765. #endif
  1766.  
  1767. #ifdef UNICODE
  1768. #define LINEREQMAKECALL LINEREQMAKECALLW
  1769. #endif
  1770.  
  1771. typedef struct linereqmediacall_tag
  1772. {
  1773.     HWND        hWnd;
  1774.     WPARAM      wRequestID;
  1775.     char        szDeviceClass[TAPIMAXDEVICECLASSSIZE];
  1776.     unsigned char   ucDeviceID[TAPIMAXDEVICEIDSIZE];
  1777.     DWORD       dwSize;
  1778.     DWORD       dwSecure;
  1779.     char        szDestAddress[TAPIMAXDESTADDRESSSIZE];
  1780.     char        szAppName[TAPIMAXAPPNAMESIZE];
  1781.     char        szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  1782.     char        szComment[TAPIMAXCOMMENTSIZE];
  1783.  
  1784. } LINEREQMEDIACALL, FAR *LPLINEREQMEDIACALL;
  1785.  
  1786. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1787. typedef struct linereqmediacallW_tag
  1788. {
  1789.     HWND        hWnd;
  1790.     WPARAM      wRequestID;
  1791.     WCHAR       szDeviceClass[TAPIMAXDEVICECLASSSIZE];
  1792.     unsigned char   ucDeviceID[TAPIMAXDEVICEIDSIZE];
  1793.     DWORD       dwSize;
  1794.     DWORD       dwSecure;
  1795.     WCHAR       szDestAddress[TAPIMAXDESTADDRESSSIZE];
  1796.     WCHAR       szAppName[TAPIMAXAPPNAMESIZE];
  1797.     WCHAR       szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  1798.     WCHAR       szComment[TAPIMAXCOMMENTSIZE];
  1799.  
  1800. } LINEREQMEDIACALLW, FAR *LPLINEREQMEDIACALLW;
  1801. #endif
  1802.  
  1803. #ifdef UNICODE
  1804. #define LINEREQMEDIACALL LINEREQMEDIACALLW
  1805. #endif
  1806.  
  1807.  
  1808. typedef struct linetermcaps_tag
  1809. {
  1810.     DWORD       dwTermDev;
  1811.     DWORD       dwTermModes;
  1812.     DWORD       dwTermSharing;
  1813.  
  1814. } LINETERMCAPS, FAR *LPLINETERMCAPS;
  1815.  
  1816. typedef struct linetranslatecaps_tag
  1817. {
  1818.     DWORD       dwTotalSize;
  1819.     DWORD       dwNeededSize;
  1820.     DWORD       dwUsedSize;
  1821.     DWORD       dwNumLocations;
  1822.     DWORD       dwLocationListSize;
  1823.     DWORD       dwLocationListOffset;
  1824.     DWORD       dwCurrentLocationID;
  1825.     DWORD       dwNumCards;
  1826.     DWORD       dwCardListSize;
  1827.     DWORD       dwCardListOffset;
  1828.     DWORD       dwCurrentPreferredCardID;
  1829.  
  1830. } LINETRANSLATECAPS, FAR *LPLINETRANSLATECAPS;
  1831.  
  1832. typedef struct linetranslateoutput_tag
  1833. {
  1834.     DWORD       dwTotalSize;
  1835.     DWORD       dwNeededSize;
  1836.     DWORD       dwUsedSize;
  1837.     DWORD       dwDialableStringSize;
  1838.     DWORD       dwDialableStringOffset;
  1839.     DWORD       dwDisplayableStringSize;
  1840.     DWORD       dwDisplayableStringOffset;
  1841.     DWORD       dwCurrentCountry;
  1842.     DWORD       dwDestCountry;
  1843.     DWORD       dwTranslateResults;
  1844.  
  1845. } LINETRANSLATEOUTPUT, FAR *LPLINETRANSLATEOUTPUT;
  1846.  
  1847. typedef struct phonebuttoninfo_tag
  1848. {
  1849.     DWORD       dwTotalSize;
  1850.     DWORD       dwNeededSize;
  1851.     DWORD       dwUsedSize;
  1852.     DWORD       dwButtonMode;
  1853.     DWORD       dwButtonFunction;
  1854.     DWORD       dwButtonTextSize;
  1855.     DWORD       dwButtonTextOffset;
  1856.     DWORD       dwDevSpecificSize;
  1857.     DWORD       dwDevSpecificOffset;
  1858.  
  1859.     DWORD       dwButtonState;                                  // TAPI v1.4
  1860.  
  1861. } PHONEBUTTONINFO, FAR *LPPHONEBUTTONINFO;
  1862.  
  1863. typedef struct phonecaps_tag
  1864. {
  1865.     DWORD       dwTotalSize;
  1866.     DWORD       dwNeededSize;
  1867.     DWORD       dwUsedSize;
  1868.     DWORD       dwProviderInfoSize;
  1869.     DWORD       dwProviderInfoOffset;
  1870.     DWORD       dwPhoneInfoSize;
  1871.     DWORD       dwPhoneInfoOffset;
  1872.     DWORD       dwPermanentPhoneID;
  1873.     DWORD       dwPhoneNameSize;
  1874.     DWORD       dwPhoneNameOffset;
  1875.     DWORD       dwStringFormat;
  1876.     DWORD       dwPhoneStates;
  1877.     DWORD       dwHookSwitchDevs;
  1878.     DWORD       dwHandsetHookSwitchModes;
  1879.     DWORD       dwSpeakerHookSwitchModes;
  1880.     DWORD       dwHeadsetHookSwitchModes;
  1881.     DWORD       dwVolumeFlags;
  1882.     DWORD       dwGainFlags;
  1883.     DWORD       dwDisplayNumRows;
  1884.     DWORD       dwDisplayNumColumns;
  1885.     DWORD       dwNumRingModes;
  1886.     DWORD       dwNumButtonLamps;
  1887.     DWORD       dwButtonModesSize;
  1888.     DWORD       dwButtonModesOffset;
  1889.     DWORD       dwButtonFunctionsSize;
  1890.     DWORD       dwButtonFunctionsOffset;
  1891.     DWORD       dwLampModesSize;
  1892.     DWORD       dwLampModesOffset;
  1893.     DWORD       dwNumSetData;
  1894.     DWORD       dwSetDataSize;
  1895.     DWORD       dwSetDataOffset;
  1896.     DWORD       dwNumGetData;
  1897.     DWORD       dwGetDataSize;
  1898.     DWORD       dwGetDataOffset;
  1899.     DWORD       dwDevSpecificSize;
  1900.     DWORD       dwDevSpecificOffset;
  1901.  
  1902. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1903.     DWORD       dwDeviceClassesSize;                            // TAPI v2.0
  1904.     DWORD       dwDeviceClassesOffset;                          // TAPI v2.0
  1905.     DWORD       dwPhoneFeatures;                                // TAPI v2.0
  1906.     DWORD       dwSettableHandsetHookSwitchModes;               // TAPI v2.0
  1907.     DWORD       dwSettableSpeakerHookSwitchModes;               // TAPI v2.0
  1908.     DWORD       dwSettableHeadsetHookSwitchModes;               // TAPI v2.0
  1909.     DWORD       dwMonitoredHandsetHookSwitchModes;              // TAPI v2.0
  1910.     DWORD       dwMonitoredSpeakerHookSwitchModes;              // TAPI v2.0
  1911.     DWORD       dwMonitoredHeadsetHookSwitchModes;              // TAPI v2.0
  1912. #endif
  1913.  
  1914. } PHONECAPS, FAR *LPPHONECAPS;
  1915.  
  1916. typedef struct phoneextensionid_tag
  1917. {
  1918.     DWORD       dwExtensionID0;
  1919.     DWORD       dwExtensionID1;
  1920.     DWORD       dwExtensionID2;
  1921.     DWORD       dwExtensionID3;
  1922.  
  1923. } PHONEEXTENSIONID, FAR *LPPHONEEXTENSIONID;
  1924.  
  1925. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1926. typedef struct phoneinitializeexparams_tag
  1927. {
  1928.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1929.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1930.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1931.     DWORD       dwOptions;                                      // TAPI v2.0
  1932.  
  1933.     union
  1934.     {
  1935.         HANDLE  hEvent;                                         // TAPI v2.0
  1936.         HANDLE  hCompletionPort;                                // TAPI v2.0
  1937.  
  1938.     } Handles;
  1939.  
  1940.     DWORD       dwCompletionKey;                                // TAPI v2.0
  1941.  
  1942. } PHONEINITIALIZEEXPARAMS, FAR *LPPHONEINITIALIZEEXPARAMS;
  1943.  
  1944. typedef struct phonemessage_tag
  1945. {
  1946.     DWORD       hDevice;                                        // TAPI v2.0
  1947.     DWORD       dwMessageID;                                    // TAPI v2.0
  1948.     DWORD       dwCallbackInstance;                             // TAPI v2.0
  1949.     DWORD       dwParam1;                                       // TAPI v2.0
  1950.     DWORD       dwParam2;                                       // TAPI v2.0
  1951.     DWORD       dwParam3;                                       // TAPI v2.0
  1952.  
  1953. } PHONEMESSAGE, FAR *LPPHONEMESSAGE;
  1954. #endif
  1955.  
  1956. typedef struct phonestatus_tag
  1957. {
  1958.     DWORD       dwTotalSize;
  1959.     DWORD       dwNeededSize;
  1960.     DWORD       dwUsedSize;
  1961.     DWORD       dwStatusFlags;
  1962.     DWORD       dwNumOwners;
  1963.     DWORD       dwNumMonitors;
  1964.     DWORD       dwRingMode;
  1965.     DWORD       dwRingVolume;
  1966.     DWORD       dwHandsetHookSwitchMode;
  1967.     DWORD       dwHandsetVolume;
  1968.     DWORD       dwHandsetGain;
  1969.     DWORD       dwSpeakerHookSwitchMode;
  1970.     DWORD       dwSpeakerVolume;
  1971.     DWORD       dwSpeakerGain;
  1972.     DWORD       dwHeadsetHookSwitchMode;
  1973.     DWORD       dwHeadsetVolume;
  1974.     DWORD       dwHeadsetGain;
  1975.     DWORD       dwDisplaySize;
  1976.     DWORD       dwDisplayOffset;
  1977.     DWORD       dwLampModesSize;
  1978.     DWORD       dwLampModesOffset;
  1979.     DWORD       dwOwnerNameSize;
  1980.     DWORD       dwOwnerNameOffset;
  1981.     DWORD       dwDevSpecificSize;
  1982.     DWORD       dwDevSpecificOffset;
  1983.  
  1984. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1985.     DWORD       dwPhoneFeatures;                                // TAPI v2.0
  1986. #endif
  1987.  
  1988. } PHONESTATUS, FAR *LPPHONESTATUS;
  1989.  
  1990. typedef struct varstring_tag
  1991. {
  1992.     DWORD       dwTotalSize;
  1993.     DWORD       dwNeededSize;
  1994.     DWORD       dwUsedSize;
  1995.     DWORD       dwStringFormat;
  1996.     DWORD       dwStringSize;
  1997.     DWORD       dwStringOffset;
  1998.  
  1999. } VARSTRING, FAR *LPVARSTRING;
  2000.  
  2001.  
  2002.  
  2003. LONG
  2004. WINAPI
  2005. lineAccept(
  2006.     HCALL               hCall,
  2007.     LPCSTR              lpsUserUserInfo,
  2008.     DWORD               dwSize
  2009.     );
  2010.  
  2011. LONG
  2012. WINAPI
  2013. lineAddProvider(                                                // TAPI v1.4
  2014.     LPCSTR              lpszProviderFilename,
  2015.     HWND                hwndOwner,
  2016.     LPDWORD             lpdwPermanentProviderID
  2017.     );
  2018.  
  2019. #if WIN32
  2020. LONG
  2021. WINAPI
  2022. lineAddProviderA(                                               // TAPI v1.4
  2023.     LPCSTR              lpszProviderFilename,
  2024.     HWND                hwndOwner,
  2025.     LPDWORD             lpdwPermanentProviderID
  2026.     );
  2027.  
  2028. LONG
  2029. WINAPI
  2030. lineAddProviderW(
  2031.     LPCWSTR             lpszProviderFilename,
  2032.     HWND                hwndOwner,
  2033.     LPDWORD             lpdwPermanentProviderID
  2034.     );
  2035.  
  2036. #ifdef UNICODE
  2037. #define lineAddProvider lineAddProviderW
  2038. #else
  2039. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2040. #define lineAddProvider lineAddProviderA
  2041. #endif
  2042. #endif
  2043.  
  2044. #endif
  2045.  
  2046.  
  2047. LONG
  2048. WINAPI
  2049. lineAddToConference(
  2050.     HCALL               hConfCall,
  2051.     HCALL               hConsultCall
  2052.     );
  2053.  
  2054. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2055. LONG
  2056. WINAPI
  2057. lineAgentSpecific(                                              // TAPI v2.0
  2058.     HLINE               hLine,
  2059.     DWORD               dwAddressID,
  2060.     DWORD               dwAgentExtensionIDIndex,
  2061.     LPVOID              lpParams,
  2062.     DWORD               dwSize
  2063.     );
  2064. #endif
  2065.  
  2066. LONG
  2067. WINAPI
  2068. lineAnswer(
  2069.     HCALL               hCall,
  2070.     LPCSTR              lpsUserUserInfo,
  2071.     DWORD               dwSize
  2072.     );
  2073.  
  2074. LONG
  2075. WINAPI
  2076. lineBlindTransfer(
  2077.     HCALL               hCall,
  2078.     LPCSTR              lpszDestAddress,
  2079.     DWORD               dwCountryCode
  2080.     );
  2081.  
  2082. #if WIN32
  2083. LONG
  2084. WINAPI
  2085. lineBlindTransferA(
  2086.     HCALL               hCall,
  2087.     LPCSTR              lpszDestAddress,
  2088.     DWORD               dwCountryCode
  2089.     );
  2090.  
  2091. LONG
  2092. WINAPI
  2093. lineBlindTransferW(
  2094.     HCALL               hCall,
  2095.     LPCWSTR             lpszDestAddressW,
  2096.     DWORD               dwCountryCode
  2097.     );
  2098.  
  2099. #ifdef UNICODE
  2100. #define lineBlindTransfer lineBlindTransferW
  2101. #else
  2102. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2103. #define lineBlindTransfer lineBlindTransferA
  2104. #endif
  2105. #endif
  2106.  
  2107. #endif
  2108.  
  2109.  
  2110. LONG
  2111. WINAPI
  2112. lineClose(
  2113.     HLINE               hLine
  2114.     );
  2115.  
  2116. LONG
  2117. WINAPI
  2118. lineCompleteCall(
  2119.     HCALL               hCall,
  2120.     LPDWORD             lpdwCompletionID,
  2121.     DWORD               dwCompletionMode,
  2122.     DWORD               dwMessageID
  2123.     );
  2124.  
  2125. LONG
  2126. WINAPI
  2127. lineCompleteTransfer(
  2128.     HCALL               hCall,
  2129.     HCALL               hConsultCall,
  2130.     LPHCALL             lphConfCall,
  2131.     DWORD               dwTransferMode
  2132.     );
  2133.  
  2134. LONG
  2135. WINAPI
  2136. lineConfigDialog(
  2137.     DWORD               dwDeviceID,
  2138.     HWND                hwndOwner,
  2139.     LPCSTR              lpszDeviceClass
  2140.     );
  2141.  
  2142. #if WIN32
  2143. LONG
  2144. WINAPI
  2145. lineConfigDialogA(
  2146.     DWORD               dwDeviceID,
  2147.     HWND                hwndOwner,
  2148.     LPCSTR              lpszDeviceClass
  2149.     );
  2150.  
  2151. LONG
  2152. WINAPI
  2153. lineConfigDialogW(
  2154.     DWORD               dwDeviceID,
  2155.     HWND                hwndOwner,
  2156.     LPCWSTR             lpszDeviceClass
  2157.     );
  2158.  
  2159. #ifdef UNICODE
  2160. #define lineConfigDialog lineConfigDialogW
  2161. #else
  2162. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2163. #define lineConfigDialog lineConfigDialogA
  2164. #endif
  2165. #endif
  2166.  
  2167. #endif
  2168.  
  2169.  
  2170. LONG
  2171. WINAPI
  2172. lineConfigDialogEdit(                                           // TAPI v1.4
  2173.     DWORD               dwDeviceID,
  2174.     HWND                hwndOwner,
  2175.     LPCSTR              lpszDeviceClass,
  2176.     LPVOID              const lpDeviceConfigIn,
  2177.     DWORD               dwSize,
  2178.     LPVARSTRING         lpDeviceConfigOut
  2179.     );
  2180.  
  2181. #if WIN32
  2182. LONG
  2183. WINAPI
  2184. lineConfigDialogEditA(                                          // TAPI v1.4
  2185.     DWORD               dwDeviceID,
  2186.     HWND                hwndOwner,
  2187.     LPCSTR              lpszDeviceClass,
  2188.     LPVOID              const lpDeviceConfigIn,
  2189.     DWORD               dwSize,
  2190.     LPVARSTRING         lpDeviceConfigOut
  2191.     );
  2192.  
  2193. LONG
  2194. WINAPI
  2195. lineConfigDialogEditW(
  2196.     DWORD               dwDeviceID,
  2197.     HWND                hwndOwner,
  2198.     LPCWSTR             lpszDeviceClass,
  2199.     LPVOID              const lpDeviceConfigIn,
  2200.     DWORD               dwSize,
  2201.     LPVARSTRING         lpDeviceConfigOut
  2202.     );
  2203.  
  2204. #ifdef UNICODE
  2205. #define lineConfigDialogEdit lineConfigDialogEditW
  2206. #else
  2207. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2208. #define lineConfigDialogEdit lineConfigDialogEditA
  2209. #endif
  2210. #endif
  2211.  
  2212. #endif
  2213.  
  2214. LONG
  2215. WINAPI
  2216. lineConfigProvider(                                             // TAPI v1.4
  2217.     HWND                hwndOwner,
  2218.     DWORD               dwPermanentProviderID
  2219.     );
  2220.  
  2221. LONG
  2222. WINAPI
  2223. lineDeallocateCall(
  2224.     HCALL               hCall
  2225.     );
  2226.  
  2227. LONG
  2228. WINAPI
  2229. lineDevSpecific(
  2230.     HLINE               hLine,
  2231.     DWORD               dwAddressID,
  2232.     HCALL               hCall,
  2233.     LPVOID              lpParams,
  2234.     DWORD               dwSize
  2235.     );
  2236.  
  2237. LONG
  2238. WINAPI
  2239. lineDevSpecificFeature(
  2240.     HLINE               hLine,
  2241.     DWORD               dwFeature,
  2242.     LPVOID              lpParams,
  2243.     DWORD               dwSize
  2244.     );
  2245.  
  2246. LONG
  2247. WINAPI
  2248. lineDial(
  2249.     HCALL               hCall,
  2250.     LPCSTR              lpszDestAddress,
  2251.     DWORD               dwCountryCode
  2252.     );
  2253.  
  2254. #if WIN32
  2255. LONG
  2256. WINAPI
  2257. lineDialA(
  2258.     HCALL               hCall,
  2259.     LPCSTR              lpszDestAddress,
  2260.     DWORD               dwCountryCode
  2261.     );
  2262.  
  2263. LONG
  2264. WINAPI
  2265. lineDialW(
  2266.     HCALL               hCall,
  2267.     LPCWSTR             lpszDestAddress,
  2268.     DWORD               dwCountryCode
  2269.     );
  2270.  
  2271. #ifdef UNICODE
  2272. #define lineDial lineDialW
  2273. #else
  2274. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2275. #define lineDial lineDialA
  2276. #endif
  2277. #endif
  2278.  
  2279. #endif
  2280.  
  2281. LONG
  2282. WINAPI
  2283. lineDrop(
  2284.     HCALL               hCall,
  2285.     LPCSTR              lpsUserUserInfo,
  2286.     DWORD               dwSize
  2287.     );
  2288.  
  2289. LONG
  2290. WINAPI
  2291. lineForward(
  2292.     HLINE               hLine,
  2293.     DWORD               bAllAddresses,
  2294.     DWORD               dwAddressID,
  2295.     LPLINEFORWARDLIST   const lpForwardList,
  2296.     DWORD               dwNumRingsNoAnswer,
  2297.     LPHCALL             lphConsultCall,
  2298.     LPLINECALLPARAMS    const lpCallParams
  2299.     );
  2300.  
  2301. #if WIN32
  2302. LONG
  2303. WINAPI
  2304. lineForwardA(
  2305.     HLINE               hLine,
  2306.     DWORD               bAllAddresses,
  2307.     DWORD               dwAddressID,
  2308.     LPLINEFORWARDLIST   const lpForwardList,
  2309.     DWORD               dwNumRingsNoAnswer,
  2310.     LPHCALL             lphConsultCall,
  2311.     LPLINECALLPARAMS    const lpCallParams
  2312.     );
  2313.  
  2314. LONG
  2315. WINAPI
  2316. lineForwardW(
  2317.     HLINE               hLine,
  2318.     DWORD               bAllAddresses,
  2319.     DWORD               dwAddressID,
  2320.     LPLINEFORWARDLIST   const lpForwardList,
  2321.     DWORD               dwNumRingsNoAnswer,
  2322.     LPHCALL             lphConsultCall,
  2323.     LPLINECALLPARAMS    const lpCallParams
  2324.     );
  2325.  
  2326. #ifdef UNICODE
  2327. #define lineForward lineForwardW
  2328. #else
  2329. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2330. #define lineForward lineForwardA
  2331. #endif
  2332. #endif
  2333.  
  2334. #endif
  2335.  
  2336. LONG
  2337. WINAPI
  2338. lineGatherDigits(
  2339.     HCALL               hCall,
  2340.     DWORD               dwDigitModes,
  2341.     LPSTR               lpsDigits,
  2342.     DWORD               dwNumDigits,
  2343.     LPCSTR              lpszTerminationDigits,
  2344.     DWORD               dwFirstDigitTimeout,
  2345.     DWORD               dwInterDigitTimeout
  2346.     );
  2347.  
  2348. #if WIN32
  2349. LONG
  2350. WINAPI
  2351. lineGatherDigitsA(
  2352.     HCALL               hCall,
  2353.     DWORD               dwDigitModes,
  2354.     LPSTR               lpsDigits,
  2355.     DWORD               dwNumDigits,
  2356.     LPCSTR              lpszTerminationDigits,
  2357.     DWORD               dwFirstDigitTimeout,
  2358.     DWORD               dwInterDigitTimeout
  2359.     );
  2360.  
  2361. LONG
  2362. WINAPI
  2363. lineGatherDigitsW(
  2364.     HCALL               hCall,
  2365.     DWORD               dwDigitModes,
  2366.     LPWSTR              lpsDigits,
  2367.     DWORD               dwNumDigits,
  2368.     LPCWSTR             lpszTerminationDigits,
  2369.     DWORD               dwFirstDigitTimeout,
  2370.     DWORD               dwInterDigitTimeout
  2371.     );
  2372.  
  2373. #ifdef UNICODE
  2374. #define lineGatherDigits lineGatherDigitsW
  2375. #else
  2376. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2377. #define lineGatherDigits lineGatherDigitsA
  2378. #endif
  2379. #endif
  2380.  
  2381. #endif
  2382.  
  2383. LONG
  2384. WINAPI
  2385. lineGenerateDigits(
  2386.     HCALL               hCall,
  2387.     DWORD               dwDigitMode,
  2388.     LPCSTR              lpszDigits,
  2389.     DWORD               dwDuration
  2390.     );
  2391.  
  2392. #if WIN32
  2393. LONG
  2394. WINAPI
  2395. lineGenerateDigitsA(
  2396.     HCALL               hCall,
  2397.     DWORD               dwDigitMode,
  2398.     LPCSTR              lpszDigits,
  2399.     DWORD               dwDuration
  2400.     );
  2401.  
  2402. LONG
  2403. WINAPI
  2404. lineGenerateDigitsW(
  2405.     HCALL               hCall,
  2406.     DWORD               dwDigitMode,
  2407.     LPCWSTR             lpszDigits,
  2408.     DWORD               dwDuration
  2409.     );
  2410.  
  2411. #ifdef UNICODE
  2412. #define lineGenerateDigits lineGenerateDigitsW
  2413. #else
  2414. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2415. #define lineGenerateDigits lineGenerateDigitsA
  2416. #endif
  2417. #endif
  2418.  
  2419. #endif
  2420.  
  2421. LONG
  2422. WINAPI
  2423. lineGenerateTone(
  2424.     HCALL               hCall,
  2425.     DWORD               dwToneMode,
  2426.     DWORD               dwDuration,
  2427.     DWORD               dwNumTones,
  2428.     LPLINEGENERATETONE  const lpTones
  2429.     );
  2430.  
  2431. LONG
  2432. WINAPI
  2433. lineGetAddressCaps(
  2434.     HLINEAPP            hLineApp,
  2435.     DWORD               dwDeviceID,
  2436.     DWORD               dwAddressID,
  2437.     DWORD               dwAPIVersion,
  2438.     DWORD               dwExtVersion,
  2439.     LPLINEADDRESSCAPS   lpAddressCaps
  2440.     );
  2441.  
  2442. #if WIN32
  2443. LONG
  2444. WINAPI
  2445. lineGetAddressCapsA(
  2446.     HLINEAPP            hLineApp,
  2447.     DWORD               dwDeviceID,
  2448.     DWORD               dwAddressID,
  2449.     DWORD               dwAPIVersion,
  2450.     DWORD               dwExtVersion,
  2451.     LPLINEADDRESSCAPS   lpAddressCaps
  2452.     );
  2453.  
  2454. LONG
  2455. WINAPI
  2456. lineGetAddressCapsW(
  2457.     HLINEAPP            hLineApp,
  2458.     DWORD               dwDeviceID,
  2459.     DWORD               dwAddressID,
  2460.     DWORD               dwAPIVersion,
  2461.     DWORD               dwExtVersion,
  2462.     LPLINEADDRESSCAPS   lpAddressCaps
  2463.     );
  2464.  
  2465. #ifdef UNICODE
  2466. #define lineGetAddressCaps lineGetAddressCapsW
  2467. #else
  2468. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2469. #define lineGetAddressCaps lineGetAddressCapsA
  2470. #endif
  2471. #endif
  2472.  
  2473. #endif
  2474.  
  2475. LONG
  2476. WINAPI
  2477. lineGetAddressID(
  2478.     HLINE               hLine,
  2479.     LPDWORD             lpdwAddressID,
  2480.     DWORD               dwAddressMode,
  2481.     LPCSTR              lpsAddress,
  2482.     DWORD               dwSize
  2483.     );
  2484.  
  2485. #if WIN32
  2486. LONG
  2487. WINAPI
  2488. lineGetAddressIDA(
  2489.     HLINE               hLine,
  2490.     LPDWORD             lpdwAddressID,
  2491.     DWORD               dwAddressMode,
  2492.     LPCSTR              lpsAddress,
  2493.     DWORD               dwSize
  2494.     );
  2495.  
  2496. LONG
  2497. WINAPI
  2498. lineGetAddressIDW(
  2499.     HLINE               hLine,
  2500.     LPDWORD             lpdwAddressID,
  2501.     DWORD               dwAddressMode,
  2502.     LPCWSTR             lpsAddress,
  2503.     DWORD               dwSize
  2504.     );
  2505.  
  2506. #ifdef UNICODE
  2507. #define lineGetAddressID lineGetAddressIDW
  2508. #else
  2509. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2510. #define lineGetAddressID lineGetAddressIDA
  2511. #endif
  2512. #endif
  2513.  
  2514. #endif
  2515.  
  2516. LONG
  2517. WINAPI
  2518. lineGetAddressStatus(
  2519.     HLINE               hLine,
  2520.     DWORD               dwAddressID,
  2521.     LPLINEADDRESSSTATUS lpAddressStatus
  2522.     );
  2523.  
  2524. #if WIN32
  2525. LONG
  2526. WINAPI
  2527. lineGetAddressStatusA(
  2528.     HLINE               hLine,
  2529.     DWORD               dwAddressID,
  2530.     LPLINEADDRESSSTATUS lpAddressStatus
  2531.     );
  2532.  
  2533. LONG
  2534. WINAPI
  2535. lineGetAddressStatusW(
  2536.     HLINE               hLine,
  2537.     DWORD               dwAddressID,
  2538.     LPLINEADDRESSSTATUS lpAddressStatus
  2539.     );
  2540.  
  2541. #ifdef UNICODE
  2542. #define lineGetAddressStatus lineGetAddressStatusW
  2543. #else
  2544. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2545. #define lineGetAddressStatus lineGetAddressStatusA
  2546. #endif
  2547. #endif
  2548.  
  2549. #endif
  2550.  
  2551. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2552. LONG
  2553. WINAPI
  2554. lineGetAgentActivityListA(                                       // TAPI v2.0
  2555.     HLINE                   hLine,
  2556.     DWORD                   dwAddressID,
  2557.     LPLINEAGENTACTIVITYLIST lpAgentActivityList
  2558.     );
  2559.  
  2560. LONG
  2561. WINAPI
  2562. lineGetAgentActivityListW(                                       // TAPI v2.0
  2563.     HLINE                   hLine,
  2564.     DWORD                   dwAddressID,
  2565.     LPLINEAGENTACTIVITYLIST lpAgentActivityList
  2566.     );
  2567.  
  2568. #ifdef UNICODE
  2569. #define lineGetAgentActivityList lineGetAgentActivityListW
  2570. #else
  2571. #define lineGetAgentActivityList lineGetAgentActivityListA
  2572. #endif
  2573.  
  2574.  
  2575. LONG
  2576. WINAPI
  2577. lineGetAgentCapsA(                                               // TAPI v2.0
  2578.     HLINEAPP            hLineApp,
  2579.     DWORD               dwDeviceID,
  2580.     DWORD               dwAddressID,
  2581.     DWORD               dwAppAPIVersion,
  2582.     LPLINEAGENTCAPS     lpAgentCaps
  2583.     );
  2584.  
  2585. LONG
  2586. WINAPI
  2587. lineGetAgentCapsW(                                               // TAPI v2.0
  2588.     HLINEAPP            hLineApp,
  2589.     DWORD               dwDeviceID,
  2590.     DWORD               dwAddressID,
  2591.     DWORD               dwAppAPIVersion,
  2592.     LPLINEAGENTCAPS     lpAgentCaps
  2593.     );
  2594.  
  2595. #ifdef UNICODE
  2596. #define lineGetAgentCaps lineGetAgentCapsW
  2597. #else
  2598. #define lineGetAgentCaps lineGetAgentCapsA
  2599. #endif
  2600.  
  2601.  
  2602. LONG
  2603. WINAPI
  2604. lineGetAgentGroupListA(                                          // TAPI v2.0
  2605.     HLINE                   hLine,
  2606.     DWORD                   dwAddressID,
  2607.     LPLINEAGENTGROUPLIST    lpAgentGroupList
  2608.     );
  2609.  
  2610. LONG
  2611. WINAPI
  2612. lineGetAgentGroupListW(                                          // TAPI v2.0
  2613.     HLINE                   hLine,
  2614.     DWORD                   dwAddressID,
  2615.     LPLINEAGENTGROUPLIST    lpAgentGroupList
  2616.     );
  2617.  
  2618. #ifdef UNICODE
  2619. #define lineGetAgentGroupList lineGetAgentGroupListW
  2620. #else
  2621. #define lineGetAgentGroupList lineGetAgentGroupListA
  2622. #endif
  2623.  
  2624. LONG
  2625. WINAPI
  2626. lineGetAgentStatusA(                                             // TAPI v2.0
  2627.     HLINE               hLine,
  2628.     DWORD               dwAddressID,
  2629.     LPLINEAGENTSTATUS   lpAgentStatus
  2630.     );
  2631.  
  2632. LONG
  2633. WINAPI
  2634. lineGetAgentStatusW(                                             // TAPI v2.0
  2635.     HLINE               hLine,
  2636.     DWORD               dwAddressID,
  2637.     LPLINEAGENTSTATUS   lpAgentStatus
  2638.     );
  2639.  
  2640. #ifdef UNICODE
  2641. #define lineGetAgentStatus lineGetAgentStatusW
  2642. #else
  2643. #define lineGetAgentStatus lineGetAgentStatusA
  2644. #endif
  2645.  
  2646. #endif
  2647.  
  2648. LONG
  2649. WINAPI
  2650. lineGetAppPriority(                                             // TAPI v1.4
  2651.     LPCSTR              lpszAppFilename,
  2652.     DWORD               dwMediaMode,
  2653.     LPLINEEXTENSIONID   lpExtensionID,
  2654.     DWORD               dwRequestMode,
  2655.     LPVARSTRING         lpExtensionName,
  2656.     LPDWORD             lpdwPriority
  2657.     );
  2658.  
  2659. #if WIN32
  2660. LONG
  2661. WINAPI
  2662. lineGetAppPriorityA(                                            // TAPI v1.4
  2663.     LPCSTR              lpszAppFilename,
  2664.     DWORD               dwMediaMode,
  2665.     LPLINEEXTENSIONID   lpExtensionID,
  2666.     DWORD               dwRequestMode,
  2667.     LPVARSTRING         lpExtensionName,
  2668.     LPDWORD             lpdwPriority
  2669.     );
  2670.  
  2671. LONG
  2672. WINAPI
  2673. lineGetAppPriorityW(                                             // TAPI v1.4
  2674.     LPCWSTR             lpszAppFilename,
  2675.     DWORD               dwMediaMode,
  2676.     LPLINEEXTENSIONID   lpExtensionID,
  2677.     DWORD               dwRequestMode,
  2678.     LPVARSTRING         lpExtensionName,
  2679.     LPDWORD             lpdwPriority
  2680.     );
  2681.  
  2682. #ifdef UNICODE
  2683. #define lineGetAppPriority lineGetAppPriorityW
  2684. #else
  2685. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2686. #define lineGetAppPriority lineGetAppPriorityA
  2687. #endif
  2688. #endif
  2689.  
  2690. #endif
  2691.  
  2692. LONG
  2693. WINAPI
  2694. lineGetCallInfo(
  2695.     HCALL               hCall,
  2696.     LPLINECALLINFO      lpCallInfo
  2697.     );
  2698.  
  2699. #if WIN32
  2700. LONG
  2701. WINAPI
  2702. lineGetCallInfoA(
  2703.     HCALL               hCall,
  2704.     LPLINECALLINFO      lpCallInfo
  2705.     );
  2706.  
  2707. LONG
  2708. WINAPI
  2709. lineGetCallInfoW(
  2710.     HCALL               hCall,
  2711.     LPLINECALLINFO      lpCallInfo
  2712.     );
  2713.  
  2714. #ifdef UNICODE
  2715. #define lineGetCallInfo lineGetCallInfoW
  2716. #else
  2717. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2718. #define lineGetCallInfo lineGetCallInfoA
  2719. #endif
  2720. #endif
  2721.  
  2722. #endif
  2723.  
  2724. LONG
  2725. WINAPI
  2726. lineGetCallStatus(
  2727.     HCALL               hCall,
  2728.     LPLINECALLSTATUS    lpCallStatus
  2729.     );
  2730.  
  2731. LONG
  2732. WINAPI
  2733. lineGetConfRelatedCalls(
  2734.     HCALL               hCall,
  2735.     LPLINECALLLIST      lpCallList
  2736.     );
  2737.     
  2738. LONG
  2739. WINAPI
  2740. lineGetCountry(                                                 // TAPI v1.4
  2741.     DWORD               dwCountryID,
  2742.     DWORD               dwAPIVersion,
  2743.     LPLINECOUNTRYLIST   lpLineCountryList
  2744.     );
  2745.  
  2746. #if WIN32
  2747. LONG
  2748. WINAPI
  2749. lineGetCountryA(                                                 // TAPI v1.4
  2750.     DWORD               dwCountryID,
  2751.     DWORD               dwAPIVersion,
  2752.     LPLINECOUNTRYLIST   lpLineCountryList
  2753.     );
  2754.  
  2755. LONG
  2756. WINAPI
  2757. lineGetCountryW(                                                // TAPI v1.4
  2758.     DWORD               dwCountryID,
  2759.     DWORD               dwAPIVersion,
  2760.     LPLINECOUNTRYLIST   lpLineCountryList
  2761.     );
  2762.  
  2763. #ifdef UNICODE
  2764. #define lineGetCountry lineGetCountryW
  2765. #else
  2766. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2767. #define lineGetCountry lineGetCountryA
  2768. #endif
  2769. #endif
  2770.  
  2771. #endif
  2772.  
  2773.  
  2774. LONG
  2775. WINAPI
  2776. lineGetDevCaps(
  2777.     HLINEAPP            hLineApp,
  2778.     DWORD               dwDeviceID,
  2779.     DWORD               dwAPIVersion,
  2780.     DWORD               dwExtVersion,
  2781.     LPLINEDEVCAPS       lpLineDevCaps
  2782.     );
  2783.  
  2784. #if WIN32
  2785. LONG
  2786. WINAPI
  2787. lineGetDevCapsA(
  2788.     HLINEAPP            hLineApp,
  2789.     DWORD               dwDeviceID,
  2790.     DWORD               dwAPIVersion,
  2791.     DWORD               dwExtVersion,
  2792.     LPLINEDEVCAPS       lpLineDevCaps
  2793.     );
  2794.  
  2795. LONG
  2796. WINAPI
  2797. lineGetDevCapsW(
  2798.     HLINEAPP            hLineApp,
  2799.     DWORD               dwDeviceID,
  2800.     DWORD               dwAPIVersion,
  2801.     DWORD               dwExtVersion,
  2802.     LPLINEDEVCAPS       lpLineDevCaps
  2803.     );
  2804.  
  2805. #ifdef UNICODE
  2806. #define lineGetDevCaps lineGetDevCapsW
  2807. #else
  2808. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2809. #define lineGetDevCaps lineGetDevCapsA
  2810. #endif
  2811. #endif
  2812.  
  2813. #endif
  2814.  
  2815. LONG
  2816. WINAPI
  2817. lineGetDevConfig(
  2818.     DWORD               dwDeviceID,
  2819.     LPVARSTRING         lpDeviceConfig,
  2820.     LPCSTR              lpszDeviceClass
  2821.     );
  2822.  
  2823. #if WIN32
  2824. LONG
  2825. WINAPI
  2826. lineGetDevConfigA(
  2827.     DWORD               dwDeviceID,
  2828.     LPVARSTRING         lpDeviceConfig,
  2829.     LPCSTR              lpszDeviceClass
  2830.     );
  2831.  
  2832. LONG
  2833. WINAPI
  2834. lineGetDevConfigW(
  2835.     DWORD               dwDeviceID,
  2836.     LPVARSTRING         lpDeviceConfig,
  2837.     LPCWSTR             lpszDeviceClass
  2838.     );
  2839.  
  2840. #ifdef UNICODE
  2841. #define lineGetDevConfig lineGetDevConfigW
  2842. #else
  2843. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2844. #define lineGetDevConfig lineGetDevConfigA
  2845. #endif
  2846. #endif
  2847.  
  2848. #endif
  2849.  
  2850. LONG
  2851. WINAPI
  2852. lineGetNewCalls(
  2853.     HLINE               hLine,
  2854.     DWORD               dwAddressID,
  2855.     DWORD               dwSelect,
  2856.     LPLINECALLLIST      lpCallList
  2857.     );
  2858.  
  2859. LONG
  2860. WINAPI
  2861. lineGetIcon(
  2862.     DWORD               dwDeviceID,
  2863.     LPCSTR              lpszDeviceClass,
  2864.     LPHICON             lphIcon
  2865.     );
  2866.  
  2867. #if WIN32
  2868. LONG
  2869. WINAPI
  2870. lineGetIconA(
  2871.     DWORD               dwDeviceID,
  2872.     LPCSTR              lpszDeviceClass,
  2873.     LPHICON             lphIcon
  2874.     );
  2875.  
  2876. LONG
  2877. WINAPI
  2878. lineGetIconW(
  2879.     DWORD               dwDeviceID,
  2880.     LPCWSTR             lpszDeviceClass,
  2881.     LPHICON             lphIcon
  2882.     );
  2883.  
  2884. #ifdef UNICODE
  2885. #define lineGetIcon lineGetIconW
  2886. #else
  2887. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2888. #define lineGetIcon lineGetIconA
  2889. #endif
  2890. #endif
  2891.  
  2892. #endif
  2893.     
  2894. LONG
  2895. WINAPI
  2896. lineGetID(
  2897.     HLINE               hLine,
  2898.     DWORD               dwAddressID,
  2899.     HCALL               hCall,
  2900.     DWORD               dwSelect,
  2901.     LPVARSTRING         lpDeviceID,
  2902.     LPCSTR              lpszDeviceClass
  2903.     );
  2904.  
  2905. #if WIN32
  2906. LONG
  2907. WINAPI
  2908. lineGetIDA(
  2909.     HLINE               hLine,
  2910.     DWORD               dwAddressID,
  2911.     HCALL               hCall,
  2912.     DWORD               dwSelect,
  2913.     LPVARSTRING         lpDeviceID,
  2914.     LPCSTR              lpszDeviceClass
  2915.     );
  2916.  
  2917. LONG
  2918. WINAPI
  2919. lineGetIDW(
  2920.     HLINE               hLine,
  2921.     DWORD               dwAddressID,
  2922.     HCALL               hCall,
  2923.     DWORD               dwSelect,
  2924.     LPVARSTRING         lpDeviceID,
  2925.     LPCWSTR             lpszDeviceClass
  2926.     );
  2927.  
  2928. #ifdef UNICODE
  2929. #define lineGetID lineGetIDW
  2930. #else
  2931. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2932. #define lineGetID lineGetIDA
  2933. #endif
  2934. #endif
  2935.  
  2936. #endif
  2937.  
  2938. LONG
  2939. WINAPI
  2940. lineGetLineDevStatus(
  2941.     HLINE               hLine,
  2942.     LPLINEDEVSTATUS     lpLineDevStatus
  2943.     );
  2944.  
  2945. #if WIN32
  2946. LONG
  2947. WINAPI
  2948. lineGetLineDevStatusA(
  2949.     HLINE               hLine,
  2950.     LPLINEDEVSTATUS     lpLineDevStatus
  2951.     );
  2952.  
  2953. LONG
  2954. WINAPI
  2955. lineGetLineDevStatusW(
  2956.     HLINE               hLine,
  2957.     LPLINEDEVSTATUS     lpLineDevStatus
  2958.     );
  2959.  
  2960. #ifdef UNICODE
  2961. #define lineGetDevStatus lineGetDevStatusW
  2962. #else
  2963. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2964. #define lineGetDevStatus lineGetDevStatusA
  2965. #endif
  2966. #endif
  2967.  
  2968. #endif
  2969.  
  2970. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2971. LONG
  2972. WINAPI
  2973. lineGetMessage(                                                 // TAPI v2.0
  2974.     HLINEAPP        hLineApp,
  2975.     LPLINEMESSAGE   lpMessage,
  2976.     DWORD           dwTimeout
  2977.     );
  2978. #endif
  2979.  
  2980. LONG
  2981. WINAPI
  2982. lineGetNumRings(
  2983.     HLINE               hLine,
  2984.     DWORD               dwAddressID,
  2985.     LPDWORD             lpdwNumRings
  2986.     );
  2987.  
  2988. LONG
  2989. WINAPI
  2990. lineGetProviderList(                                            // TAPI v1.4
  2991.     DWORD               dwAPIVersion,
  2992.     LPLINEPROVIDERLIST  lpProviderList
  2993.     );
  2994.  
  2995. #if WIN32
  2996. LONG
  2997. WINAPI
  2998. lineGetProviderListA(
  2999.     DWORD               dwAPIVersion,
  3000.     LPLINEPROVIDERLIST  lpProviderList
  3001.     );
  3002.  
  3003. LONG
  3004. WINAPI
  3005. lineGetProviderListW(
  3006.     DWORD               dwAPIVersion,
  3007.     LPLINEPROVIDERLIST  lpProviderList
  3008.     );
  3009.  
  3010. #ifdef UNICODE
  3011. #define lineGetProviderList lineGetProviderListW
  3012. #else
  3013. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3014. #define lineGetProviderList lineGetProviderListA
  3015. #endif
  3016. #endif
  3017.  
  3018. #endif
  3019.  
  3020. LONG
  3021. WINAPI
  3022. lineGetRequest(
  3023.     HLINEAPP            hLineApp,
  3024.     DWORD               dwRequestMode,
  3025.     LPVOID              lpRequestBuffer
  3026.     );
  3027.  
  3028. #if WIN32
  3029. LONG
  3030. WINAPI
  3031. lineGetRequestA(
  3032.     HLINEAPP            hLineApp,
  3033.     DWORD               dwRequestMode,
  3034.     LPVOID              lpRequestBuffer
  3035.     );
  3036.  
  3037. LONG
  3038. WINAPI
  3039. lineGetRequestW(
  3040.     HLINEAPP            hLineApp,
  3041.     DWORD               dwRequestMode,
  3042.     LPVOID              lpRequestBuffer
  3043.     );
  3044.  
  3045. #ifdef UNICODE
  3046. #define lineGetRequest lineGetRequestW
  3047. #else
  3048. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3049. #define lineGetRequest lineGetRequestA
  3050. #endif
  3051. #endif
  3052.  
  3053. #endif
  3054.  
  3055. LONG
  3056. WINAPI
  3057. lineGetStatusMessages(
  3058.     HLINE               hLine,
  3059.     LPDWORD             lpdwLineStates,
  3060.     LPDWORD             lpdwAddressStates
  3061.     );
  3062.  
  3063. LONG
  3064. WINAPI
  3065. lineGetTranslateCaps(
  3066.     HLINEAPP hLineApp,
  3067.     DWORD dwAPIVersion,
  3068.     LPLINETRANSLATECAPS lpTranslateCaps
  3069.     );
  3070.  
  3071. #if WIN32
  3072. LONG
  3073. WINAPI
  3074. lineGetTranslateCapsA(
  3075.     HLINEAPP hLineApp,
  3076.     DWORD dwAPIVersion,
  3077.     LPLINETRANSLATECAPS lpTranslateCaps
  3078.     );
  3079.  
  3080. LONG
  3081. WINAPI
  3082. lineGetTranslateCapsW(
  3083.     HLINEAPP hLineApp,
  3084.     DWORD dwAPIVersion,
  3085.     LPLINETRANSLATECAPS lpTranslateCaps
  3086.     );
  3087.  
  3088. #ifdef UNICODE
  3089. #define lineGetTranslateCaps lineGetTranslateCapsW
  3090. #else
  3091. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3092. #define lineGetTranslateCaps lineGetTranslateCapsA
  3093. #endif
  3094. #endif
  3095.  
  3096. #endif
  3097.  
  3098.  
  3099. LONG
  3100. WINAPI
  3101. lineHandoff(
  3102.     HCALL               hCall,
  3103.     LPCSTR              lpszFileName,
  3104.     DWORD               dwMediaMode
  3105.     );
  3106.  
  3107. #if WIN32
  3108. LONG
  3109. WINAPI
  3110. lineHandoffA(
  3111.     HCALL               hCall,
  3112.     LPCSTR              lpszFileName,
  3113.     DWORD               dwMediaMode
  3114.     );
  3115.  
  3116. LONG
  3117. WINAPI
  3118. lineHandoffW(
  3119.     HCALL               hCall,
  3120.     LPCWSTR             lpszFileName,
  3121.     DWORD               dwMediaMode
  3122.     );
  3123.  
  3124. #ifdef UNICODE
  3125. #define lineHandoff lineHandoffW
  3126. #else
  3127. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3128. #define lineHandoff lineHandoffA
  3129. #endif
  3130. #endif
  3131.  
  3132. #endif
  3133.  
  3134. LONG
  3135. WINAPI
  3136. lineHold(
  3137.     HCALL               hCall
  3138.     );
  3139.  
  3140. LONG
  3141. WINAPI
  3142. lineInitialize(
  3143.     LPHLINEAPP          lphLineApp,
  3144.     HINSTANCE           hInstance,
  3145.     LINECALLBACK        lpfnCallback,
  3146.     LPCSTR              lpszAppName,
  3147.     LPDWORD             lpdwNumDevs
  3148.     );
  3149.  
  3150. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3151. LONG
  3152. WINAPI
  3153. lineInitializeExA(                                               // TAPI v2.0
  3154.     LPHLINEAPP                  lphLineApp,
  3155.     HINSTANCE                   hInstance,
  3156.     LINECALLBACK                lpfnCallback,
  3157.     LPCSTR                      lpszFriendlyAppName,
  3158.     LPDWORD                     lpdwNumDevs,
  3159.     LPDWORD                     lpdwAPIVersion,
  3160.     LPLINEINITIALIZEEXPARAMS    lpLineInitializeExParams
  3161.     );
  3162.  
  3163. LONG
  3164. WINAPI
  3165. lineInitializeExW(                                               // TAPI v2.0
  3166.     LPHLINEAPP                  lphLineApp,
  3167.     HINSTANCE                   hInstance,
  3168.     LINECALLBACK                lpfnCallback,
  3169.     LPCWSTR                     lpszFriendlyAppName,
  3170.     LPDWORD                     lpdwNumDevs,
  3171.     LPDWORD                     lpdwAPIVersion,
  3172.     LPLINEINITIALIZEEXPARAMS    lpLineInitializeExParams
  3173.     );
  3174.  
  3175. #ifdef UNICODE
  3176. #define lineInitializeEx lineInitializeExW
  3177. #else
  3178. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3179. #define lineInitializeEx lineInitializeExA
  3180. #endif
  3181. #endif
  3182.  
  3183. #endif
  3184.  
  3185.  
  3186. LONG
  3187. WINAPI
  3188. lineMakeCall(
  3189.     HLINE               hLine,
  3190.     LPHCALL             lphCall,
  3191.     LPCSTR              lpszDestAddress,
  3192.     DWORD               dwCountryCode,
  3193.     LPLINECALLPARAMS    const lpCallParams
  3194.     );
  3195.  
  3196. #if WIN32
  3197. LONG
  3198. WINAPI
  3199. lineMakeCallA(
  3200.     HLINE               hLine,
  3201.     LPHCALL             lphCall,
  3202.     LPCSTR              lpszDestAddress,
  3203.     DWORD               dwCountryCode,
  3204.     LPLINECALLPARAMS    const lpCallParams
  3205.     );
  3206.  
  3207. LONG
  3208. WINAPI
  3209. lineMakeCallW(
  3210.     HLINE               hLine,
  3211.     LPHCALL             lphCall,
  3212.     LPCWSTR             lpszDestAddress,
  3213.     DWORD               dwCountryCode,
  3214.     LPLINECALLPARAMS    const lpCallParams
  3215.     );
  3216.  
  3217. #ifdef UNICODE
  3218. #define lineMakeCall lineMakeCallW
  3219. #else
  3220. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3221. #define lineMakeCall lineMakeCallA
  3222. #endif
  3223. #endif
  3224.  
  3225. #endif
  3226.  
  3227. LONG
  3228. WINAPI
  3229. lineMonitorDigits(
  3230.     HCALL               hCall,
  3231.     DWORD               dwDigitModes
  3232.     );
  3233.  
  3234. LONG
  3235. WINAPI
  3236. lineMonitorMedia(
  3237.     HCALL               hCall,
  3238.     DWORD               dwMediaModes
  3239.     );
  3240.  
  3241. LONG
  3242. WINAPI
  3243. lineMonitorTones(
  3244.     HCALL               hCall,
  3245.     LPLINEMONITORTONE   const lpToneList,
  3246.     DWORD               dwNumEntries
  3247.     );
  3248.  
  3249. LONG
  3250. WINAPI
  3251. lineNegotiateAPIVersion(
  3252.     HLINEAPP            hLineApp,
  3253.     DWORD               dwDeviceID,
  3254.     DWORD               dwAPILowVersion,
  3255.     DWORD               dwAPIHighVersion,
  3256.     LPDWORD             lpdwAPIVersion,
  3257.     LPLINEEXTENSIONID   lpExtensionID
  3258.     );
  3259.  
  3260. LONG
  3261. WINAPI
  3262. lineNegotiateExtVersion(
  3263.     HLINEAPP            hLineApp,
  3264.     DWORD               dwDeviceID,
  3265.     DWORD               dwAPIVersion,
  3266.     DWORD               dwExtLowVersion,
  3267.     DWORD               dwExtHighVersion,
  3268.     LPDWORD             lpdwExtVersion
  3269.     );
  3270.  
  3271. LONG
  3272. WINAPI
  3273. lineOpen(
  3274.     HLINEAPP hLineApp, 
  3275.     DWORD dwDeviceID,
  3276.     LPHLINE lphLine,
  3277.     DWORD               dwAPIVersion,
  3278.     DWORD               dwExtVersion,
  3279.     DWORD               dwCallbackInstance,
  3280.     DWORD               dwPrivileges,
  3281.     DWORD               dwMediaModes,
  3282.     LPLINECALLPARAMS    const lpCallParams
  3283.     );
  3284.  
  3285. #if WIN32
  3286. LONG
  3287. WINAPI
  3288. lineOpenA(
  3289.     HLINEAPP hLineApp, 
  3290.     DWORD dwDeviceID,
  3291.     LPHLINE lphLine,
  3292.     DWORD               dwAPIVersion,
  3293.     DWORD               dwExtVersion,
  3294.     DWORD               dwCallbackInstance,
  3295.     DWORD               dwPrivileges,
  3296.     DWORD               dwMediaModes,
  3297.     LPLINECALLPARAMS    const lpCallParams
  3298.     );
  3299.  
  3300. LONG
  3301. WINAPI
  3302. lineOpenW(
  3303.     HLINEAPP hLineApp, 
  3304.     DWORD dwDeviceID,
  3305.     LPHLINE lphLine,
  3306.     DWORD               dwAPIVersion,
  3307.     DWORD               dwExtVersion,
  3308.     DWORD               dwCallbackInstance,
  3309.     DWORD               dwPrivileges,
  3310.     DWORD               dwMediaModes,
  3311.     LPLINECALLPARAMS    const lpCallParams
  3312.     );
  3313.  
  3314. #ifdef UNICODE
  3315. #define lineOpen lineOpenW
  3316. #else
  3317. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3318. #define lineOpen lineOpenA
  3319. #endif
  3320. #endif
  3321.  
  3322. #endif
  3323.  
  3324. LONG
  3325. WINAPI
  3326. linePark(
  3327.     HCALL               hCall,
  3328.     DWORD               dwParkMode,
  3329.     LPCSTR              lpszDirAddress,
  3330.     LPVARSTRING         lpNonDirAddress
  3331.     );
  3332.  
  3333. #if WIN32
  3334. LONG
  3335. WINAPI
  3336. lineParkA(
  3337.     HCALL               hCall,
  3338.     DWORD               dwParkMode,
  3339.     LPCSTR              lpszDirAddress,
  3340.     LPVARSTRING         lpNonDirAddress
  3341.     );
  3342.  
  3343. LONG
  3344. WINAPI
  3345. lineParkW(
  3346.     HCALL               hCall,
  3347.     DWORD               dwParkMode,
  3348.     LPCWSTR             lpszDirAddress,
  3349.     LPVARSTRING         lpNonDirAddress
  3350.     );
  3351.  
  3352. #ifdef UNICODE
  3353. #define linePark lineParkW
  3354. #else
  3355. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3356. #define linePark lineParkA
  3357. #endif
  3358. #endif
  3359.  
  3360. #endif
  3361.  
  3362. LONG
  3363. WINAPI
  3364. linePickup(
  3365.     HLINE               hLine,
  3366.     DWORD               dwAddressID,
  3367.     LPHCALL             lphCall,
  3368.     LPCSTR              lpszDestAddress,
  3369.     LPCSTR              lpszGroupID
  3370.     );
  3371.  
  3372. #if WIN32
  3373. LONG
  3374. WINAPI
  3375. linePickupA(
  3376.     HLINE               hLine,
  3377.     DWORD               dwAddressID,
  3378.     LPHCALL             lphCall,
  3379.     LPCSTR              lpszDestAddress,
  3380.     LPCSTR              lpszGroupID
  3381.     );
  3382.  
  3383. LONG
  3384. WINAPI
  3385. linePickupW(
  3386.     HLINE               hLine,
  3387.     DWORD               dwAddressID,
  3388.     LPHCALL             lphCall,
  3389.     LPCWSTR             lpszDestAddress,
  3390.     LPCWSTR             lpszGroupID
  3391.     );
  3392.  
  3393. #ifdef UNICODE
  3394. #define linePickup linePickupW
  3395. #else
  3396. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3397. #define linePickup linePickupA
  3398. #endif
  3399. #endif
  3400.  
  3401. #endif
  3402.  
  3403. LONG
  3404. WINAPI
  3405. linePrepareAddToConference(
  3406.     HCALL               hConfCall,
  3407.     LPHCALL             lphConsultCall,
  3408.     LPLINECALLPARAMS    const lpCallParams
  3409.     );
  3410.  
  3411. #if WIN32
  3412. LONG
  3413. WINAPI
  3414. linePrepareAddToConferenceA(
  3415.     HCALL               hConfCall,
  3416.     LPHCALL             lphConsultCall,
  3417.     LPLINECALLPARAMS    const lpCallParams
  3418.     );
  3419.  
  3420. LONG
  3421. WINAPI
  3422. linePrepareAddToConferenceW(
  3423.     HCALL               hConfCall,
  3424.     LPHCALL             lphConsultCall,
  3425.     LPLINECALLPARAMS    const lpCallParams
  3426.     );
  3427.  
  3428. #ifdef UNICODE
  3429. #define linePrepareAddToConference linePrepareAddToConferenceW
  3430. #else
  3431. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3432. #define linePrepareAddToConference linePrepareAddToConferenceA
  3433. #endif
  3434. #endif
  3435.  
  3436. #endif
  3437.  
  3438. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3439. LONG
  3440. WINAPI
  3441. lineProxyMessage(                                               // TAPI v2.0
  3442.     HLINE               hLine,
  3443.     HCALL               hCall,
  3444.     DWORD               dwMsg,
  3445.     DWORD               dwParam1,
  3446.     DWORD               dwParam2,
  3447.     DWORD               dwParam3
  3448.     );
  3449.  
  3450. LONG
  3451. WINAPI
  3452. lineProxyResponse(                                              // TAPI v2.0
  3453.     HLINE               hLine,
  3454.     LPLINEPROXYREQUEST  lpProxyRequest,
  3455.     DWORD               dwResult
  3456.     );
  3457. #endif
  3458.  
  3459. LONG
  3460. WINAPI
  3461. lineRedirect(
  3462.     HCALL               hCall,
  3463.     LPCSTR              lpszDestAddress,
  3464.     DWORD               dwCountryCode
  3465.     );
  3466.  
  3467. #if WIN32
  3468. LONG
  3469. WINAPI
  3470. lineRedirectA(
  3471.     HCALL               hCall,
  3472.     LPCSTR              lpszDestAddress,
  3473.     DWORD               dwCountryCode
  3474.     );
  3475.  
  3476. LONG
  3477. WINAPI
  3478. lineRedirectW(
  3479.     HCALL               hCall,
  3480.     LPCWSTR             lpszDestAddress,
  3481.     DWORD               dwCountryCode
  3482.     );
  3483.  
  3484. #ifdef UNICODE
  3485. #define lineRedirect lineRedirectW
  3486. #else
  3487. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3488. #define lineRedirect lineRedirectA
  3489. #endif
  3490. #endif
  3491.  
  3492. #endif
  3493.  
  3494. LONG
  3495. WINAPI
  3496. lineRegisterRequestRecipient(
  3497.     HLINEAPP            hLineApp,
  3498.     DWORD               dwRegistrationInstance,
  3499.     DWORD               dwRequestMode,
  3500.     DWORD               bEnable
  3501.     );
  3502.  
  3503. LONG
  3504. WINAPI
  3505. lineReleaseUserUserInfo(                                        // TAPI v1.4
  3506.     HCALL               hCall
  3507.     );
  3508.  
  3509. LONG
  3510. WINAPI
  3511. lineRemoveFromConference(
  3512.     HCALL               hCall
  3513.     );
  3514.  
  3515. LONG
  3516. WINAPI
  3517. lineRemoveProvider(                                             // TAPI v1.4
  3518.     DWORD               dwPermanentProviderID,
  3519.     HWND                hwndOwner
  3520.     );
  3521.  
  3522. LONG
  3523. WINAPI
  3524. lineSecureCall(
  3525.     HCALL               hCall
  3526.     );
  3527.  
  3528. LONG
  3529. WINAPI
  3530. lineSendUserUserInfo(
  3531.     HCALL               hCall,
  3532.     LPCSTR              lpsUserUserInfo,
  3533.     DWORD               dwSize
  3534.     );
  3535.  
  3536. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3537. LONG
  3538. WINAPI
  3539. lineSetAgentActivity(                                           // TAPI v2.0
  3540.     HLINE               hLine,
  3541.     DWORD               dwAddressID,
  3542.     DWORD               dwActivityID
  3543.     );
  3544.  
  3545. LONG
  3546. WINAPI
  3547. lineSetAgentGroup(                                              // TAPI v2.0
  3548.     HLINE                   hLine,
  3549.     DWORD                   dwAddressID,
  3550.     LPLINEAGENTGROUPLIST    lpAgentGroupList
  3551.     );
  3552.  
  3553. LONG
  3554. WINAPI
  3555. lineSetAgentState(                                              // TAPI v2.0
  3556.     HLINE               hLine,
  3557.     DWORD               dwAddressID,
  3558.     DWORD               dwAgentState,
  3559.     DWORD               dwNextAgentState
  3560.     );
  3561. #endif
  3562.  
  3563. LONG
  3564. WINAPI
  3565. lineSetAppPriority(                                             // TAPI v1.4
  3566.     LPCSTR              lpszAppFilename,
  3567.     DWORD               dwMediaMode,
  3568.     LPLINEEXTENSIONID   lpExtensionID,
  3569.     DWORD               dwRequestMode,
  3570.     LPCSTR              lpszExtensionName,
  3571.     DWORD               dwPriority
  3572.     );
  3573.  
  3574. #if WIN32
  3575. LONG
  3576. WINAPI
  3577. lineSetAppPriorityA(                                             // TAPI v1.4
  3578.     LPCSTR              lpszAppFilename,
  3579.     DWORD               dwMediaMode,
  3580.     LPLINEEXTENSIONID   lpExtensionID,
  3581.     DWORD               dwRequestMode,
  3582.     LPCSTR              lpszExtensionName,
  3583.     DWORD               dwPriority
  3584.     );
  3585.  
  3586. LONG
  3587. WINAPI
  3588. lineSetAppPriorityW(                                             // TAPI v1.4
  3589.     LPCWSTR             lpszAppFilename,
  3590.     DWORD               dwMediaMode,
  3591.     LPLINEEXTENSIONID   lpExtensionID,
  3592.     DWORD               dwRequestMode,
  3593.     LPCWSTR             lpszExtensionName,
  3594.     DWORD               dwPriority
  3595.     );
  3596.  
  3597. #ifdef UNICODE
  3598. #define lineSetAppPriority lineSetAppPriorityW
  3599. #else
  3600. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3601. #define lineSetAppPriority lineSetAppPriorityA
  3602. #endif
  3603. #endif
  3604.  
  3605. #endif
  3606.  
  3607. LONG
  3608. WINAPI
  3609. lineSetAppSpecific(
  3610.     HCALL               hCall,
  3611.     DWORD               dwAppSpecific
  3612.     );
  3613.  
  3614. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3615. LONG
  3616. WINAPI
  3617. lineSetCallData(                                                // TAPI v2.0
  3618.     HCALL               hCall,
  3619.     LPVOID              lpCallData,
  3620.     DWORD               dwSize
  3621.     );
  3622. #endif
  3623.  
  3624. LONG
  3625. WINAPI
  3626. lineSetCallParams(
  3627.     HCALL               hCall,
  3628.     DWORD               dwBearerMode,
  3629.     DWORD               dwMinRate,
  3630.     DWORD               dwMaxRate,
  3631.     LPLINEDIALPARAMS    const lpDialParams
  3632.     );
  3633.  
  3634. LONG
  3635. WINAPI
  3636. lineSetCallPrivilege(
  3637.     HCALL               hCall,
  3638.     DWORD               dwCallPrivilege
  3639.     );
  3640.  
  3641. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3642. LONG
  3643. WINAPI
  3644. lineSetCallQualityOfService(                                    // TAPI v2.0
  3645.     HCALL               hCall,
  3646.     LPVOID              lpSendingFlowspec,
  3647.     DWORD               dwSendingFlowspecSize,
  3648.     LPVOID              lpReceivingFlowspec,
  3649.     DWORD               dwReceivingFlowspecSize
  3650.     );
  3651.  
  3652. LONG
  3653. WINAPI
  3654. lineSetCallTreatment(                                           // TAPI v2.0
  3655.     HCALL               hCall,
  3656.     DWORD               dwTreatment
  3657.     );
  3658. #endif
  3659.  
  3660. LONG
  3661. WINAPI
  3662. lineSetCurrentLocation(
  3663.     HLINEAPP            hLineApp,
  3664.     DWORD               dwLocation
  3665.     );
  3666.  
  3667. LONG
  3668. WINAPI
  3669. lineSetDevConfig(
  3670.     DWORD               dwDeviceID,
  3671.     LPVOID              const lpDeviceConfig,
  3672.     DWORD               dwSize,
  3673.     LPCSTR              lpszDeviceClass
  3674.     );
  3675.  
  3676. #if WIN32
  3677. LONG
  3678. WINAPI
  3679. lineSetDevConfigA(
  3680.     DWORD               dwDeviceID,
  3681.     LPVOID              const lpDeviceConfig,
  3682.     DWORD               dwSize,
  3683.     LPCSTR              lpszDeviceClass
  3684.     );
  3685.  
  3686. LONG
  3687. WINAPI
  3688. lineSetDevConfigW(
  3689.     DWORD               dwDeviceID,
  3690.     LPVOID              const lpDeviceConfig,
  3691.     DWORD               dwSize,
  3692.     LPCWSTR             lpszDeviceClass
  3693.     );
  3694.  
  3695. #ifdef UNICODE
  3696. #define lineSetDevConfig lineSetDevConfigW
  3697. #else
  3698. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3699. #define lineSetDevConfig lineSetDevConfigA
  3700. #endif
  3701. #endif
  3702.  
  3703. #endif
  3704.  
  3705. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3706. LONG
  3707. WINAPI
  3708. lineSetLineDevStatus(                                           // TAPI v2.0
  3709.     HLINE               hLine,
  3710.     DWORD               dwStatusToChange,
  3711.     DWORD               fStatus
  3712.     );
  3713. #endif
  3714.  
  3715. LONG
  3716. WINAPI
  3717. lineSetMediaControl(
  3718.     HLINE                       hLine,
  3719.     DWORD                       dwAddressID,
  3720.     HCALL                       hCall,
  3721.     DWORD                       dwSelect,
  3722.     LPLINEMEDIACONTROLDIGIT     const lpDigitList,
  3723.     DWORD                       dwDigitNumEntries,
  3724.     LPLINEMEDIACONTROLMEDIA     const lpMediaList,
  3725.     DWORD                       dwMediaNumEntries,
  3726.     LPLINEMEDIACONTROLTONE      const lpToneList,
  3727.     DWORD                       dwToneNumEntries,
  3728.     LPLINEMEDIACONTROLCALLSTATE const lpCallStateList, 
  3729.     DWORD                       dwCallStateNumEntries
  3730.     );
  3731.  
  3732. LONG
  3733. WINAPI
  3734. lineSetMediaMode(
  3735.     HCALL               hCall,
  3736.     DWORD               dwMediaModes
  3737.     );
  3738.  
  3739. LONG
  3740. WINAPI
  3741. lineSetNumRings(
  3742.     HLINE               hLine,
  3743.     DWORD               dwAddressID,
  3744.     DWORD               dwNumRings
  3745.     );
  3746.  
  3747. LONG
  3748. WINAPI
  3749. lineSetStatusMessages(
  3750.     HLINE               hLine,
  3751.     DWORD               dwLineStates,
  3752.     DWORD               dwAddressStates
  3753.     );
  3754.  
  3755. LONG
  3756. WINAPI
  3757. lineSetTerminal(
  3758.     HLINE               hLine,
  3759.     DWORD               dwAddressID,
  3760.     HCALL               hCall,
  3761.     DWORD               dwSelect,
  3762.     DWORD               dwTerminalModes,
  3763.     DWORD               dwTerminalID,
  3764.     DWORD               bEnable
  3765.     );
  3766.  
  3767. LONG
  3768. WINAPI
  3769. lineSetTollList(
  3770.     HLINEAPP            hLineApp,
  3771.     DWORD               dwDeviceID,
  3772.     LPCSTR              lpszAddressIn,
  3773.     DWORD               dwTollListOption
  3774.     );
  3775.  
  3776. #if WIN32
  3777. LONG
  3778. WINAPI
  3779. lineSetTollListA(
  3780.     HLINEAPP            hLineApp,
  3781.     DWORD               dwDeviceID,
  3782.     LPCSTR              lpszAddressIn,
  3783.     DWORD               dwTollListOption
  3784.     );
  3785.  
  3786. LONG
  3787. WINAPI
  3788. lineSetTollListW(
  3789.     HLINEAPP            hLineApp,
  3790.     DWORD               dwDeviceID,
  3791.     LPCWSTR             lpszAddressInW,
  3792.     DWORD               dwTollListOption
  3793.     );
  3794.  
  3795. #ifdef UNICODE
  3796. #define lineSetTollList lineSetTollListW
  3797. #else
  3798. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3799. #define lineSetTollList lineSetTollListA
  3800. #endif
  3801. #endif
  3802.  
  3803. #endif
  3804.  
  3805.  
  3806. LONG
  3807. WINAPI
  3808. lineSetupConference(
  3809.     HCALL               hCall,
  3810.     HLINE               hLine,
  3811.     LPHCALL             lphConfCall,
  3812.     LPHCALL             lphConsultCall,
  3813.     DWORD               dwNumParties,
  3814.     LPLINECALLPARAMS    const lpCallParams
  3815.     );
  3816.  
  3817. #if WIN32
  3818. LONG
  3819. WINAPI
  3820. lineSetupConferenceA(
  3821.     HCALL               hCall,
  3822.     HLINE               hLine,
  3823.     LPHCALL             lphConfCall,
  3824.     LPHCALL             lphConsultCall,
  3825.     DWORD               dwNumParties,
  3826.     LPLINECALLPARAMS    const lpCallParams
  3827.     );
  3828.  
  3829. LONG
  3830. WINAPI
  3831. lineSetupConferenceW(
  3832.     HCALL               hCall,
  3833.     HLINE               hLine,
  3834.     LPHCALL             lphConfCall,
  3835.     LPHCALL             lphConsultCall,
  3836.     DWORD               dwNumParties,
  3837.     LPLINECALLPARAMS    const lpCallParams
  3838.     );
  3839.  
  3840. #ifdef UNICODE
  3841. #define lineSetupConference lineSetupConferenceW
  3842. #else
  3843. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3844. #define lineSetupConference lineSetupConferenceA
  3845. #endif
  3846. #endif
  3847.  
  3848. #endif
  3849.  
  3850. LONG
  3851. WINAPI
  3852. lineSetupTransfer(
  3853.     HCALL               hCall,
  3854.     LPHCALL             lphConsultCall,
  3855.     LPLINECALLPARAMS    const lpCallParams
  3856.     );
  3857.  
  3858. #if WIN32
  3859. LONG
  3860. WINAPI
  3861. lineSetupTransferA(
  3862.     HCALL               hCall,
  3863.     LPHCALL             lphConsultCall,
  3864.     LPLINECALLPARAMS    const lpCallParams
  3865.     );
  3866.  
  3867. LONG
  3868. WINAPI
  3869. lineSetupTransferW(
  3870.     HCALL               hCall,
  3871.     LPHCALL             lphConsultCall,
  3872.     LPLINECALLPARAMS    const lpCallParams
  3873.     );
  3874.  
  3875. #ifdef UNICODE
  3876. #define lineSetupTransfer lineSetupTransferW
  3877. #else
  3878. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3879. #define lineSetupTransfer lineSetupTransferA
  3880. #endif
  3881. #endif
  3882.  
  3883. #endif
  3884.  
  3885. LONG
  3886. WINAPI
  3887. lineShutdown(
  3888.     HLINEAPP            hLineApp
  3889.     );
  3890.  
  3891. LONG
  3892. WINAPI
  3893. lineSwapHold(
  3894.     HCALL               hActiveCall,
  3895.     HCALL               hHeldCall
  3896.     );
  3897.  
  3898. LONG
  3899. WINAPI
  3900. lineTranslateAddress(
  3901.     HLINEAPP                hLineApp,
  3902.     DWORD                   dwDeviceID,
  3903.     DWORD                   dwAPIVersion,
  3904.     LPCSTR                  lpszAddressIn,
  3905.     DWORD                   dwCard,
  3906.     DWORD                   dwTranslateOptions,
  3907.     LPLINETRANSLATEOUTPUT   lpTranslateOutput
  3908.     );
  3909.  
  3910. #if WIN32
  3911. LONG
  3912. WINAPI
  3913. lineTranslateAddressA(
  3914.     HLINEAPP                hLineApp,
  3915.     DWORD                   dwDeviceID,
  3916.     DWORD                   dwAPIVersion,
  3917.     LPCSTR                  lpszAddressIn,
  3918.     DWORD                   dwCard,
  3919.     DWORD                   dwTranslateOptions,
  3920.     LPLINETRANSLATEOUTPUT   lpTranslateOutput
  3921.     );
  3922.  
  3923. LONG
  3924. WINAPI
  3925. lineTranslateAddressW(
  3926.     HLINEAPP                hLineApp,
  3927.     DWORD                   dwDeviceID,
  3928.     DWORD                   dwAPIVersion,
  3929.     LPCWSTR                 lpszAddressIn,
  3930.     DWORD                   dwCard,
  3931.     DWORD                   dwTranslateOptions,
  3932.     LPLINETRANSLATEOUTPUT   lpTranslateOutput
  3933.     );
  3934.  
  3935. #ifdef UNICODE
  3936. #define lineTranslateAddress lineTranslateAddressW
  3937. #else
  3938. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3939. #define lineTranslateAddressA lineTranslateAddressA
  3940. #endif
  3941. #endif
  3942.  
  3943. #endif
  3944.  
  3945. LONG
  3946. WINAPI
  3947. lineTranslateDialog(                                            // TAPI v1.4
  3948.     HLINEAPP            hLineApp,
  3949.     DWORD               dwDeviceID,
  3950.     DWORD               dwAPIVersion,
  3951.     HWND                hwndOwner,
  3952.     LPCSTR              lpszAddressIn
  3953.     );
  3954.  
  3955. #if WIN32
  3956. LONG
  3957. WINAPI
  3958. lineTranslateDialogA(                                            // TAPI v1.4
  3959.     HLINEAPP            hLineApp,
  3960.     DWORD               dwDeviceID,
  3961.     DWORD               dwAPIVersion,
  3962.     HWND                hwndOwner,
  3963.     LPCSTR              lpszAddressIn
  3964.     );
  3965.  
  3966. LONG
  3967. WINAPI
  3968. lineTranslateDialogW(
  3969.     HLINEAPP            hLineApp,
  3970.     DWORD               dwDeviceID,
  3971.     DWORD               dwAPIVersion,
  3972.     HWND                hwndOwner,
  3973.     LPCWSTR             lpszAddressIn
  3974.     );
  3975.  
  3976. #ifdef UNICODE
  3977. #define lineTranslateDialog lineTranslateDialogW
  3978. #else
  3979. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3980. #define lineTranslateDialogA lineTranslateDialogA
  3981. #endif
  3982. #endif
  3983.  
  3984. #endif
  3985.  
  3986. LONG
  3987. WINAPI
  3988. lineUncompleteCall(
  3989.     HLINE               hLine,
  3990.     DWORD               dwCompletionID
  3991.     );
  3992.  
  3993. LONG
  3994. WINAPI
  3995. lineUnhold(
  3996.     HCALL               hCall
  3997.     );
  3998.  
  3999. LONG
  4000. WINAPI
  4001. lineUnpark(
  4002.     HLINE               hLine,
  4003.     DWORD               dwAddressID,
  4004.     LPHCALL             lphCall,
  4005.     LPCSTR              lpszDestAddress
  4006.     );
  4007.  
  4008. #if WIN32
  4009. LONG
  4010. WINAPI
  4011. lineUnparkA(
  4012.     HLINE               hLine,
  4013.     DWORD               dwAddressID,
  4014.     LPHCALL             lphCall,
  4015.     LPCSTR              lpszDestAddress
  4016.     );
  4017.  
  4018. LONG
  4019. WINAPI
  4020. lineUnparkW(
  4021.     HLINE               hLine,
  4022.     DWORD               dwAddressID,
  4023.     LPHCALL             lphCall,
  4024.     LPCWSTR             lpszDestAddress
  4025.     );
  4026.  
  4027. #ifdef UNICODE
  4028. #define lineUnpark lineUnparkW
  4029. #else
  4030. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4031. #define lineUnpark lineUnparkA
  4032. #endif
  4033. #endif
  4034.  
  4035. #endif
  4036.  
  4037.  
  4038.  
  4039. LONG
  4040. WINAPI
  4041. phoneClose(
  4042.     HPHONE              hPhone
  4043.     );
  4044.  
  4045. LONG
  4046. WINAPI
  4047. phoneConfigDialog(
  4048.     DWORD               dwDeviceID,
  4049.     HWND                hwndOwner,
  4050.     LPCSTR              lpszDeviceClass
  4051.     );
  4052.  
  4053. #if WIN32
  4054. LONG
  4055. WINAPI
  4056. phoneConfigDialogA(
  4057.     DWORD               dwDeviceID,
  4058.     HWND                hwndOwner,
  4059.     LPCSTR              lpszDeviceClass
  4060.     );
  4061.  
  4062. LONG
  4063. WINAPI
  4064. phoneConfigDialogW(
  4065.     DWORD               dwDeviceID,
  4066.     HWND                hwndOwner,
  4067.     LPCWSTR             lpszDeviceClass
  4068.     );
  4069.  
  4070. #ifdef UNICODE
  4071. #define phoneConfigDialog phoneConfigDialogW
  4072. #else
  4073. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4074. #define phoneConfigDialog phoneConfigDialogA
  4075. #endif
  4076. #endif
  4077.  
  4078. #endif
  4079.  
  4080. LONG
  4081. WINAPI
  4082. phoneDevSpecific(
  4083.     HPHONE              hPhone,
  4084.     LPVOID              lpParams,
  4085.     DWORD               dwSize
  4086.     );
  4087.  
  4088. LONG
  4089. WINAPI
  4090. phoneGetButtonInfo(
  4091.     HPHONE              hPhone,
  4092.     DWORD               dwButtonLampID,
  4093.     LPPHONEBUTTONINFO   lpButtonInfo
  4094.     );
  4095.  
  4096. #if WIN32
  4097. LONG
  4098. WINAPI
  4099. phoneGetButtonInfoA(
  4100.     HPHONE              hPhone,
  4101.     DWORD               dwButtonLampID,
  4102.     LPPHONEBUTTONINFO   lpButtonInfo
  4103.     );
  4104.  
  4105. LONG
  4106. WINAPI
  4107. phoneGetButtonInfoW(
  4108.     HPHONE              hPhone,
  4109.     DWORD               dwButtonLampID,
  4110.     LPPHONEBUTTONINFO   lpButtonInfo
  4111.     );
  4112.  
  4113. #ifdef UNICODE
  4114. #define phoneGetButtonInfo phoneGetButtonInfoW
  4115. #else
  4116. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4117. #define phoneGetButtonInfo phoneGetButtonInfoA
  4118. #endif
  4119. #endif
  4120.  
  4121. #endif
  4122.  
  4123. LONG
  4124. WINAPI
  4125. phoneGetData(
  4126.     HPHONE              hPhone,
  4127.     DWORD               dwDataID,
  4128.     LPVOID              lpData,
  4129.     DWORD               dwSize
  4130.     );
  4131.  
  4132. LONG
  4133. WINAPI
  4134. phoneGetDevCaps(
  4135.     HPHONEAPP           hPhoneApp,
  4136.     DWORD               dwDeviceID,
  4137.     DWORD               dwAPIVersion,
  4138.     DWORD               dwExtVersion,
  4139.     LPPHONECAPS         lpPhoneCaps
  4140.     );
  4141.  
  4142. #if WIN32
  4143. LONG
  4144. WINAPI
  4145. phoneGetDevCapsA(
  4146.     HPHONEAPP           hPhoneApp,
  4147.     DWORD               dwDeviceID,
  4148.     DWORD               dwAPIVersion,
  4149.     DWORD               dwExtVersion,
  4150.     LPPHONECAPS         lpPhoneCaps
  4151.     );
  4152.  
  4153. LONG
  4154. WINAPI
  4155. phoneGetDevCapsW(
  4156.     HPHONEAPP           hPhoneApp,
  4157.     DWORD               dwDeviceID,
  4158.     DWORD               dwAPIVersion,
  4159.     DWORD               dwExtVersion,
  4160.     LPPHONECAPS         lpPhoneCaps
  4161.     );
  4162.  
  4163. #ifdef UNICODE
  4164. #define phoneGetDevCaps phoneGetDevCapsW
  4165. #else
  4166. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4167. #define phoneGetDevCaps phoneGetDevCapsA
  4168. #endif
  4169. #endif
  4170.  
  4171. #endif
  4172.  
  4173. LONG
  4174. WINAPI
  4175. phoneGetDisplay(
  4176.     HPHONE              hPhone,
  4177.     LPVARSTRING         lpDisplay
  4178.     );
  4179.  
  4180. LONG
  4181. WINAPI
  4182. phoneGetGain(
  4183.     HPHONE              hPhone,
  4184.     DWORD               dwHookSwitchDev,
  4185.     LPDWORD             lpdwGain
  4186.     );
  4187.  
  4188. LONG
  4189. WINAPI
  4190. phoneGetHookSwitch(
  4191.     HPHONE              hPhone,
  4192.     LPDWORD             lpdwHookSwitchDevs
  4193.     );
  4194.  
  4195. LONG
  4196. WINAPI
  4197. phoneGetIcon(
  4198.     DWORD               dwDeviceID,
  4199.     LPCSTR              lpszDeviceClass,
  4200.     LPHICON             lphIcon
  4201.     );
  4202.  
  4203. #if WIN32
  4204. LONG
  4205. WINAPI
  4206. phoneGetIconA(
  4207.     DWORD               dwDeviceID,
  4208.     LPCSTR              lpszDeviceClass,
  4209.     LPHICON             lphIcon
  4210.     );
  4211.  
  4212. LONG
  4213. WINAPI
  4214. phoneGetIconW(
  4215.     DWORD               dwDeviceID,
  4216.     LPCWSTR             lpszDeviceClass,
  4217.     LPHICON             lphIcon
  4218.     );
  4219.  
  4220. #ifdef UNICODE
  4221. #define phoneGetIcon phoneGetIconW
  4222. #else
  4223. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4224. #define phoneGetIcon phoneGetIconA
  4225. #endif
  4226. #endif
  4227.  
  4228. #endif
  4229.  
  4230. LONG
  4231. WINAPI
  4232. phoneGetID(
  4233.     HPHONE              hPhone,
  4234.     LPVARSTRING         lpDeviceID,
  4235.     LPCSTR              lpszDeviceClass
  4236.     );
  4237.  
  4238. #if WIN32
  4239. LONG
  4240. WINAPI
  4241. phoneGetIDA(
  4242.     HPHONE              hPhone,
  4243.     LPVARSTRING         lpDeviceID,
  4244.     LPCSTR              lpszDeviceClass
  4245.     );
  4246.  
  4247. LONG
  4248. WINAPI
  4249. phoneGetIDW(
  4250.     HPHONE              hPhone,
  4251.     LPVARSTRING         lpDeviceID,
  4252.     LPCWSTR             lpszDeviceClass
  4253.     );
  4254.  
  4255. #ifdef UNICODE
  4256. #define phoneGetID phoneGetIDW
  4257. #else
  4258. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4259. #define phoneGetID phoneGetIDA
  4260. #endif
  4261. #endif
  4262.  
  4263. #endif
  4264.  
  4265. LONG
  4266. WINAPI
  4267. phoneGetLamp(
  4268.     HPHONE              hPhone,
  4269.     DWORD               dwButtonLampID,
  4270.     LPDWORD             lpdwLampMode
  4271.     );
  4272.  
  4273. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4274. LONG
  4275. WINAPI
  4276. phoneGetMessage(                                                // TAPI v2.0
  4277.     HPHONEAPP       hPhoneApp,
  4278.     LPPHONEMESSAGE  lpMessage,
  4279.     DWORD           dwTimeout
  4280.     );
  4281. #endif
  4282.  
  4283. LONG
  4284. WINAPI
  4285. phoneGetRing(
  4286.     HPHONE              hPhone,
  4287.     LPDWORD             lpdwRingMode,
  4288.     LPDWORD             lpdwVolume
  4289.     );
  4290.  
  4291. LONG
  4292. WINAPI
  4293. phoneGetStatus(
  4294.     HPHONE              hPhone,
  4295.     LPPHONESTATUS       lpPhoneStatus
  4296.     );
  4297.  
  4298. #if WIN32
  4299. LONG
  4300. WINAPI
  4301. phoneGetStatusA(
  4302.     HPHONE              hPhone,
  4303.     LPPHONESTATUS       lpPhoneStatus
  4304.     );
  4305.  
  4306. LONG
  4307. WINAPI
  4308. phoneGetStatusW(
  4309.     HPHONE              hPhone,
  4310.     LPPHONESTATUS       lpPhoneStatus
  4311.     );
  4312.  
  4313.  
  4314. #ifdef UNICODE
  4315. #define phoneGetStatus phoneGetStatusW
  4316. #else
  4317. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4318. #define phoneGetStatus phoneGetStatusA
  4319. #endif
  4320. #endif
  4321.  
  4322. #endif
  4323.  
  4324. LONG
  4325. WINAPI
  4326. phoneGetStatusMessages(
  4327.     HPHONE              hPhone,
  4328.     LPDWORD             lpdwPhoneStates,
  4329.     LPDWORD             lpdwButtonModes,
  4330.     LPDWORD             lpdwButtonStates
  4331.     );
  4332.  
  4333. LONG
  4334. WINAPI
  4335. phoneGetVolume(
  4336.     HPHONE              hPhone,
  4337.     DWORD               dwHookSwitchDev,
  4338.     LPDWORD             lpdwVolume
  4339.     );
  4340.  
  4341. LONG
  4342. WINAPI
  4343. phoneInitialize(
  4344.     LPHPHONEAPP         lphPhoneApp,
  4345.     HINSTANCE           hInstance,
  4346.     PHONECALLBACK       lpfnCallback,
  4347.     LPCSTR              lpszAppName,
  4348.     LPDWORD             lpdwNumDevs
  4349.     );
  4350.  
  4351.  
  4352. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4353. LONG
  4354. WINAPI
  4355. phoneInitializeExA(                                              // TAPI v2.0
  4356.     LPHPHONEAPP                 lphPhoneApp,
  4357.     HINSTANCE                   hInstance,
  4358.     PHONECALLBACK               lpfnCallback,
  4359.     LPCSTR                      lpszFriendlyAppName,
  4360.     LPDWORD                     lpdwNumDevs,
  4361.     LPDWORD                     lpdwAPIVersion,
  4362.     LPPHONEINITIALIZEEXPARAMS   lpPhoneInitializeExParams
  4363.     );
  4364.  
  4365. LONG
  4366. WINAPI
  4367. phoneInitializeExW(                                              // TAPI v2.0
  4368.     LPHPHONEAPP                 lphPhoneApp,
  4369.     HINSTANCE                   hInstance,
  4370.     PHONECALLBACK               lpfnCallback,
  4371.     LPCWSTR                     lpszFriendlyAppName,
  4372.     LPDWORD                     lpdwNumDevs,
  4373.     LPDWORD                     lpdwAPIVersion,
  4374.     LPPHONEINITIALIZEEXPARAMS   lpPhoneInitializeExParams
  4375.     );
  4376.  
  4377. #ifdef UNICODE
  4378. #define phoneInitializeEx phoneInitializeExW
  4379. #else
  4380. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4381. #define phoneInitializeEx phoneInitializeExA
  4382. #endif
  4383. #endif
  4384.  
  4385. #endif
  4386.  
  4387. LONG
  4388. WINAPI
  4389. phoneNegotiateAPIVersion(
  4390.     HPHONEAPP           hPhoneApp,
  4391.     DWORD               dwDeviceID,
  4392.     DWORD               dwAPILowVersion,
  4393.     DWORD               dwAPIHighVersion,
  4394.     LPDWORD             lpdwAPIVersion,
  4395.     LPPHONEEXTENSIONID  lpExtensionID
  4396.     );
  4397.  
  4398. LONG
  4399. WINAPI
  4400. phoneNegotiateExtVersion(
  4401.     HPHONEAPP           hPhoneApp,
  4402.     DWORD               dwDeviceID,
  4403.     DWORD               dwAPIVersion,
  4404.     DWORD               dwExtLowVersion,
  4405.     DWORD               dwExtHighVersion,
  4406.     LPDWORD             lpdwExtVersion
  4407.     );
  4408.  
  4409. LONG
  4410. WINAPI
  4411. phoneOpen(
  4412.     HPHONEAPP           hPhoneApp,
  4413.     DWORD               dwDeviceID,
  4414.     LPHPHONE            lphPhone,
  4415.     DWORD               dwAPIVersion,
  4416.     DWORD               dwExtVersion,
  4417.     DWORD               dwCallbackInstance,
  4418.     DWORD               dwPrivilege
  4419.     );
  4420.  
  4421. LONG
  4422. WINAPI
  4423. phoneSetButtonInfo(
  4424.     HPHONE              hPhone,
  4425.     DWORD               dwButtonLampID,
  4426.     LPPHONEBUTTONINFO   const lpButtonInfo
  4427.     );
  4428.  
  4429. #if WIN32
  4430. LONG
  4431. WINAPI
  4432. phoneSetButtonInfoA(
  4433.     HPHONE              hPhone,
  4434.     DWORD               dwButtonLampID,
  4435.     LPPHONEBUTTONINFO   const lpButtonInfo
  4436.     );
  4437.  
  4438. LONG
  4439. WINAPI
  4440. phoneSetButtonInfoW(
  4441.     HPHONE              hPhone,
  4442.     DWORD               dwButtonLampID,
  4443.     LPPHONEBUTTONINFO   const lpButtonInfo
  4444.     );
  4445.  
  4446. #ifdef UNICODE
  4447. #define phoneSetButtonInfo phoneSetButtonInfoW
  4448. #else
  4449. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4450. #define phoneSetButtonInfo phoneSetButtonInfoA
  4451. #endif
  4452. #endif
  4453.  
  4454. #endif
  4455.  
  4456. LONG
  4457. WINAPI
  4458. phoneSetData(
  4459.     HPHONE              hPhone,
  4460.     DWORD               dwDataID,
  4461.     LPVOID              const lpData,
  4462.     DWORD               dwSize
  4463.     );
  4464.  
  4465. LONG
  4466. WINAPI
  4467. phoneSetDisplay(
  4468.     HPHONE              hPhone,
  4469.     DWORD               dwRow,
  4470.     DWORD               dwColumn,
  4471.     LPCSTR              lpsDisplay,
  4472.     DWORD               dwSize
  4473.     );
  4474.  
  4475. LONG
  4476. WINAPI
  4477. phoneSetGain(
  4478.     HPHONE              hPhone,
  4479.     DWORD               dwHookSwitchDev,
  4480.     DWORD               dwGain
  4481.     );
  4482.  
  4483. LONG
  4484. WINAPI
  4485. phoneSetHookSwitch(
  4486.     HPHONE              hPhone,
  4487.     DWORD               dwHookSwitchDevs,
  4488.     DWORD               dwHookSwitchMode
  4489.     );
  4490.  
  4491. LONG
  4492. WINAPI
  4493. phoneSetLamp(
  4494.     HPHONE              hPhone,
  4495.     DWORD               dwButtonLampID,
  4496.     DWORD               dwLampMode
  4497.     );
  4498.  
  4499. LONG
  4500. WINAPI
  4501. phoneSetRing(
  4502.     HPHONE              hPhone,
  4503.     DWORD               dwRingMode,
  4504.     DWORD               dwVolume
  4505.     );
  4506.  
  4507. LONG
  4508. WINAPI
  4509. phoneSetStatusMessages(
  4510.     HPHONE              hPhone,
  4511.     DWORD               dwPhoneStates,
  4512.     DWORD               dwButtonModes,
  4513.     DWORD               dwButtonStates
  4514.     );
  4515.  
  4516. LONG
  4517. WINAPI
  4518. phoneSetVolume(
  4519.     HPHONE              hPhone,
  4520.     DWORD               dwHookSwitchDev,
  4521.     DWORD               dwVolume
  4522.     );
  4523.  
  4524. LONG
  4525. WINAPI
  4526. phoneShutdown(
  4527.     HPHONEAPP           hPhoneApp
  4528.     );
  4529.  
  4530.  
  4531.  
  4532. LONG
  4533. WINAPI
  4534. tapiGetLocationInfo(
  4535.     LPSTR               lpszCountryCode,
  4536.     LPSTR               lpszCityCode
  4537.     );
  4538.     
  4539. #if WIN32
  4540. LONG
  4541. WINAPI
  4542. tapiGetLocationInfoA(
  4543.     LPSTR               lpszCountryCode,
  4544.     LPSTR               lpszCityCode
  4545.     );
  4546.     
  4547. LONG
  4548. WINAPI
  4549. tapiGetLocationInfoW(
  4550.     LPWSTR               lpszCountryCodeW,
  4551.     LPWSTR               lpszCityCodeW
  4552.     );
  4553.  
  4554. #ifdef UNICODE
  4555. #define tapiGetLocationInfo tapiGetLocationInfoW
  4556. #else
  4557. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4558. #define tapiGetLocationInfo tapiGetLocationInfoA
  4559. #endif
  4560. #endif
  4561.  
  4562. #endif
  4563.     
  4564.  
  4565. LONG
  4566. WINAPI
  4567. tapiRequestDrop(
  4568.     HWND                hwnd,
  4569.     WPARAM              wRequestID
  4570.     );
  4571.  
  4572. LONG
  4573. WINAPI
  4574. tapiRequestMakeCall(
  4575.     LPCSTR              lpszDestAddress,
  4576.     LPCSTR              lpszAppName,
  4577.     LPCSTR              lpszCalledParty,
  4578.     LPCSTR              lpszComment
  4579.     );
  4580.  
  4581. #if WIN32
  4582. LONG
  4583. WINAPI
  4584. tapiRequestMakeCallA(
  4585.     LPCSTR              lpszDestAddress,
  4586.     LPCSTR              lpszAppName,
  4587.     LPCSTR              lpszCalledParty,
  4588.     LPCSTR              lpszComment
  4589.     );
  4590.  
  4591. LONG
  4592. WINAPI
  4593. tapiRequestMakeCallW(
  4594.     LPCWSTR              lpszDestAddress,
  4595.     LPCWSTR              lpszAppName,
  4596.     LPCWSTR              lpszCalledParty,
  4597.     LPCWSTR              lpszComment
  4598.     );
  4599.  
  4600. #ifdef UNICODE
  4601. #define tapiRequestMakeCall tapiRequestMakeCallW
  4602. #else
  4603. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4604. #define tapiRequestMakeCall tapiRequestMakeCallA
  4605. #endif
  4606. #endif
  4607.  
  4608. #endif
  4609.     
  4610. LONG
  4611. WINAPI
  4612. tapiRequestMediaCall(
  4613.     HWND                hwnd,
  4614.     WPARAM              wRequestID,
  4615.     LPCSTR              lpszDeviceClass,
  4616.     LPCSTR              lpDeviceID,
  4617.     DWORD               dwSize,
  4618.     DWORD               dwSecure,
  4619.     LPCSTR              lpszDestAddress,
  4620.     LPCSTR              lpszAppName,
  4621.     LPCSTR              lpszCalledParty,
  4622.     LPCSTR              lpszComment
  4623.     );
  4624.  
  4625. #if WIN32
  4626. LONG
  4627. WINAPI
  4628. tapiRequestMediaCallA(
  4629.     HWND                hwnd,
  4630.     WPARAM              wRequestID,
  4631.     LPCSTR              lpszDeviceClass,
  4632.     LPCSTR              lpDeviceID,
  4633.     DWORD               dwSize,
  4634.     DWORD               dwSecure,
  4635.     LPCSTR              lpszDestAddress,
  4636.     LPCSTR              lpszAppName,
  4637.     LPCSTR              lpszCalledParty,
  4638.     LPCSTR              lpszComment
  4639.     );
  4640.  
  4641. LONG
  4642. WINAPI
  4643. tapiRequestMediaCallW(
  4644.     HWND                hwnd,
  4645.     WPARAM              wRequestID,
  4646.     LPCWSTR             lpszDeviceClass,
  4647.     LPCWSTR             lpDeviceID,
  4648.     DWORD               dwSize,
  4649.     DWORD               dwSecure,
  4650.     LPCWSTR             lpszDestAddress,
  4651.     LPCWSTR             lpszAppName,
  4652.     LPCWSTR             lpszCalledParty,
  4653.     LPCWSTR             lpszComment
  4654.     );
  4655.  
  4656. #ifdef UNICODE
  4657. #define tapiRequestMediaCall tapiRequestMediaCallW
  4658. #else
  4659. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4660. #define tapiRequestMediaCall tapiRequestMediaCallA
  4661. #endif
  4662. #endif
  4663.  
  4664. #endif
  4665.     
  4666. /*
  4667.  
  4668. TAPIERROR_FORMATMESSAGE - macro to convert a TAPI error constant
  4669.     into a constant that FormatMessage will accept
  4670.     
  4671.         TAPIERR : Negative numbers and 0
  4672.             Map to : strip off high WORD
  4673.             Example: 0xFFFFFFFF (-1) becomes 0x0000FFFF
  4674.         LINEERR : Start at 0x80000000
  4675.             Map to : strip off 0x80000000 and add 0xE000
  4676.             Example: 0x80000004 becomes 0x0000E004
  4677.         PHONEERR: Start at 0x90000000
  4678.             Map to : strip off 0x90000000 and add 0xF000
  4679.             Example: 0x9000000A becomes 0x0000F00A
  4680.  
  4681.         pseudocode:
  4682.         
  4683.         if (__ErrCode__ is a TAPIERR)
  4684.             strip off high word
  4685.  
  4686.             else if (__ErrCode__ is a PHONEERR)
  4687.                 strip off 0x90000000
  4688.                 add 0xE000
  4689.  
  4690.                 else
  4691.                     strip off 0x80000000
  4692.                     add 0xF000
  4693.  
  4694. */
  4695.  
  4696. #define TAPIERROR_FORMATMESSAGE(__ErrCode__)                                                   \
  4697.                                                                                                \
  4698.                     ( ( (__ErrCode__) > 0xFFFF0000 ) ?                                         \
  4699.                                                                                                \
  4700.                             ( (__ErrCode__) & 0x0000FFFF ) :                                   \
  4701.                                                                                                \
  4702.                             ( ( (__ErrCode__) & 0x10000000 ) ?                                 \
  4703.                                                                                                \
  4704.                               ( (__ErrCode__) - 0x90000000 + 0xF000 ) :                        \
  4705.                                                                                                \
  4706.                               ( (__ErrCode__) - 0x80000000 + 0xE000 ) ) )
  4707.  
  4708.  
  4709.  
  4710. #ifdef __cplusplus
  4711. }                       /* End of extern "C" { */
  4712. #endif  /* __cplusplus */
  4713.  
  4714. #pragma pack()
  4715.  
  4716. #pragma option pop
  4717. #endif // TAPI_H
  4718.